#include #include /* Datenstrukturen für Liste (Zeiger auf Anfang und Ende) * und Listenelementen mit eigentlichen Werten und * Zeigern auf jeweils nächstes Element */ typedef struct listenelement_typ { float wert; listenelement_typ* naechstes; }; typedef struct listen_typ { listenelement_typ* erstes; listenelement_typ* letztes; }; /* Funktionen zur Arbeit mit Listen */ void insert(listen_typ* l, float wert) { listenelement_typ* neu = (listenelement_typ*) malloc(sizeof(listenelement_typ)); neu->wert = wert; neu->naechstes = NULL; if (l->erstes == NULL) { l->erstes = neu; l->letztes = neu; } else { l->letztes->naechstes = neu; l->letztes = neu; } } void ausgabe(listen_typ l) { printf("Listenelemente: ("); listenelement_typ* aktuell = l.erstes; while (aktuell != NULL) { printf("%g ",aktuell->wert); aktuell = aktuell->naechstes; } printf(") \n"); } /* Hauptprogramm */ int main() { listen_typ l = {NULL,NULL}; insert(&l,3.0); insert(&l,4.678); insert(&l,345.2); ausgabe(l); return 0; }