rendered paste body#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmd=0;
char delwort[20], prewort[20], addwort[20];
struct eintrag { // Deklaration eines Listenelements
char wort[20];
struct eintrag *next;
};
typedef struct eintrag element;
struct eintrag *liste; //Zeiger auf den Anfang der Liste
struct eintrag *previous;
struct eintrag *new;
void erstellen (element* ptr) {
printf ("Wort eingeben ('ENDE' fuer Ende der Liste): ");
scanf("%s", ptr->wort);
if (strcmp(ptr->wort,"ENDE")==0) ptr->next=NULL;
else {
ptr->next = (element*) malloc(sizeof(element));
erstellen (ptr->next);
}
return;
}
void anzeigen (element* ptr){
if (ptr->next != NULL) {
printf ("%s\n",ptr->wort);
anzeigen (ptr->next);
}
return;
}
void createlist (void) {
liste = (element*)malloc(sizeof(element));
erstellen(liste);
clrscr();
anzeigen(liste);
}
void addentry (element* ptr, char* preword, char* addword) {
if (ptr->next != NULL) {
if (strcmp(ptr->wort,preword)==0) {
new = (element*)malloc(sizeof(element));
if (ptr==liste) liste=new; else previous->next=new;
new->next=ptr;
strcpy(new->wort,addword);
}
else {
previous=ptr;
addentry (ptr->next, preword, addword);
}
}
return;
}
void addentrystart (void) {
printf("Welches Wort soll eingefuegt werden? ");
scanf("%s",&addwort);
printf("Vor welchem Wort soll eingefuegt werden? ");
scanf("%s",&prewort);
addentry (liste, prewort, addwort);
clrscr();
anzeigen(liste);
}
void delentry (element* ptr, char* keyword) {
if (ptr->next != NULL) {
if (strcmp(ptr->wort,keyword)==0) {
if (ptr==liste) liste=ptr->next; else previous->next=ptr->next;
free(ptr);
}
else {
previous=ptr;
delentry (ptr->next, keyword);
}
}
}
void delentrystart (void) {
printf("Welches wort soll geloescht werden? ");
scanf("%s",&delwort);
delentry (liste, delwort);
clrscr();
anzeigen(liste);
}
int main(int argc, char* argv[]) {
do {
printf ("Bitte waehlen Sie:\n1 - Liste erstellen\n2 - Element hinzufuegen\n3 - Element loeschen\n4 - Programm beenden\nAuswahl:");
scanf("%d",&cmd);
if (cmd == 1) { createlist(); }
if (cmd == 2) { addentrystart(); }
if (cmd == 3) { delentrystart(); }
} while (cmd!=4);
return 0;
}