restructure and add ipi texs
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user