All pastes #68674 Raw Edit

Someone

public text v1 · immutable
#68674 ·published 2006-06-21 22:30 UTC
rendered paste body
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmd=0, waslast=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);
}


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 eingefügt werden? ");
 scanf("%s",&addwort);
 printf("Vor welchem Wort soll eingefügt werden? ");
 scanf("%s",&prewort);
 addentry (liste, prewort, addwort);
}


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);
}

int main(int argc, char* argv[]) {
 do {
  printf ("Bitte waehlen Sie:\n1 - Liste erstellen\n2 - Element hinzufuegen\n3 - Element löschen\n4 - Liste anzeigen\n5 - Programm beenden\nAuswahl:");
  scanf("%d",&cmd);
  if (cmd == 1) { createlist(); }
  if (cmd == 2) { addentrystart(); }
  if (cmd == 3) { delentrystart(); }
  if (cmd == 4) { anzeigen(liste); }
 } while (cmd!=5);
 return 0;
}