|
- // Ein Listenelement
- struct IntListElem {
- IntListElem* next; // Zeiger auf nächstes Element
- int value; // Daten zu diesem Element
- } ;
-
- // Eine Liste
- struct IntList {
- int count; // Anzahl Elemente in der Liste
- IntListElem* first; // Zeiger auf erstes Element der Liste
- } ;
-
-
- // Initialisiere eine Listenstruktur
- void empty_list (IntList* l)
- {
- l->first = 0; // 0 ist keine gueltige Adresse: Liste ist leer
- l->count = 0;
- }
-
- // Fuege ein Element nach einem gegebenem ein
- void insert_in_list (IntList* list, IntListElem* where, IntListElem* ins)
- {
- if (where==0) // fuege am Anfang ein
- {
- ins->next = list->first;
- list->first = ins;
- list->count = list->count + 1;
- }
- else // fuege nach where ein
- {
- ins->next = where->next;
- where->next = ins;
- list->count = list->count + 1;
- }
- }
-
- // Entferne ein Element nach einem gegebenem
- // Liefere das entfernte Element zurueck
- IntListElem* remove_from_list (IntList* list, IntListElem* where)
- {
- IntListElem* p; // das entfernte Element
-
- // where==0 dann entferne erstes Element
- if (where==0)
- {
- p = list->first;
- if (p!=0)
- {
- list->first = p->next;
- list->count = list->count - 1;
- }
- return p;
- }
-
- // entferne Element nach where
- p = where->next;
- if (p!=0)
- {
- where->next = p->next;
- list->count = list->count - 1;
- }
- return p;
- }
|