|
mxListe.h |
/*
* mxListe.h
*
* =====================================================================================================================
* Das Modul mxListe stellt Datenstrukturen und Operationen fuer das Arbeiten
* mit Indexlisten zur Verfuegung. Indexlisten sind Listen, in denen
* int-Zahlen miteinander verkettet werden koennen. Aufgabe solcher Listen
* ist es, Listen von Feldelementen zu verwalten. Die in einem Listenknoten
* gespeicherte int-Zahl entspricht dabei dem Index, den das von dem Knoten
* referenzierte Feldelement in seinem Feld hat.
* =====================================================================================================================
*/
#ifndef __mxListe__
#define __mxListe__
/***************
** Strukturen **
***************/
typedef struct tListenKnoten { /* Knoten in einer Indexliste */
struct tListenKnoten *Vorgaenger; /* Verweis auf Vorgaengerknoten in Liste */
struct tListenKnoten *Nachfolger; /* Verweis auf Nachfolgerknoten in Liste */
int Index; /* Index des referenzierten Feldelements */
} tListenKnoten;
typedef struct { /* Listenkopf einer Indexliste */
tListenKnoten *Anfang; /* Verweis auf ersten Listenknoten */
tListenKnoten *Ende; /* Verweis auf letzten Listenknoten */
} tListe;
/***************
** Prototypen **
***************/
void ListeInitialisieren(tListe *Liste);
/* Macht aus <Liste> eine leere Indexliste
*/
int ListeLeer(tListe *Liste);
/* Gibt an, ob die Indexliste <Liste> leer ist
*/
void KnotenInitialisieren(tListenKnoten *Knoten, int aIndex);
/* Macht aus <Knoten> einen freien Listenknoten fuer das Feldelement
* mit Index <aIndex>, d.h. der Knoten steht in keiner Liste
*/
void KnotenAnhaengen(tListe *Liste, tListenKnoten *Knoten);
/* Haengt den freien Listenknoten <Knoten> an das Ende der Indexliste
* <Liste> an.
*/
tListenKnoten *KnotenAbhaengen(tListe *Liste);
/* Entfernt den ersten Knoten aus der Liste <Liste> und gibt in
* <KnotenP> einen Zeiger auf den jetzt freien Listenknoten zurueck
*/
void KnotenExtrahieren(tListe *Liste, tListenKnoten *Knoten);
/* Entfernt den Listenknoten <Knoten>, der Element der Indexliste
* <Liste> sein muss, aus <Liste>.
*/
int InitListe(void);
/* Init fuer das Modul mxListe */
#endif
Bei Problemen mit der Seite bitte eine Mail an Marek
Converted with C2HTML V0.669 by Iluvatar
Prozeßdatenverarbeitung