Stapel auf Basis von verzeigerten Elementen II

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

TicTacToe2.om
PROCEDURE InitListOfStates(VAR list: ListOfStates);
BEGIN
   list.top := NIL; list.nofstates := 0;
END InitListOfStates;

PROCEDURE AddState(VAR list: ListOfStates; state: State);
   VAR
      element: StateElement;
BEGIN
   NEW(element); element.state := state;
   element.next := list.top; list.top := element;
   INC(list.nofstates);
END AddState;

PROCEDURE RemoveState(VAR list: ListOfStates);
BEGIN
   ASSERT(list.top # NIL);
   list.top := list.top.next;
   DEC(list.nofstates);
END RemoveState;

PROCEDURE GetCurrentState(VAR list: ListOfStates;
                          VAR state: State);
BEGIN
   ASSERT(list.nofstates > 0);
   state := list.top.state;
END GetCurrentState;

PROCEDURE Length(list: ListOfStates) : INTEGER;
BEGIN
   RETURN list.nofstates
END Length;

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999