Datenstrukturen
Für die Listenklasse sind zwei Datenstrukturen notwendig, die im folgenden näher erläutert werden:
- Daten zur Verwaltung der eigentlichen Liste
- Datenstruktur zum speichern der Daten
Verwaltung der Liste
Zeiger auf Listenanfang
template <class T>
class CList <T> {
...
private:
CElement * m_pFirst;
...
}
Dieser Zeiger verweist auf das erste Listenelement. Ist die Liste leer, so hat dieser Zeiger den Wert NULL. Es bestehen keine direkten Zugriffsfunktionen für den Wert von m_pFirst, lediglich CList::IsEmpty verwendet diesen Wert zur Statusabfrage der Liste.
Hilfklasse zum speichern der Daten
Die Listenelemente besitzen zwei Member - Variablen, die benötigt werden, um die Anforderungen der Aufgabe zu erfüllen:
Zeiger auf nächstes Listenelement
template <class T>
class CList <T>::CElement
{
...
private:
CElement * m_pNext;
...
}
Dieser Zeiger verweist auf das nächste Listenelement. Ist er NULL, so ist das Ende der Liste erreicht.
Zugriffsfunktionen
- CElement * GetNext(): Lesen der Variable
- void SetNext (CElement *): Setzen der Variable
Speicherbereich für Datum
template <class T>
class CList <T>::CElement
{
...
private:
T m_pData;
...
}
In dieser Variable wird das zu sichernde Datum gespeichert.
Zugriffsfunktionen
- T GetData(): Lesen der Variable
- void SetData (T): Setzen der Variable