Algorithmen und |
6. Übung - abzugeben am 29. 11. 1999 in Ihrer Übungsgruppe
DEFINITION OF MODULE Stack; CONST BLKS=??; (* e.g. 5 = number of elements per stack element *) TYPE ElemT*= INTEGER; (* data element type *) StElemT= RECORD (* stack element type *) data: ARRAY BLKS OF ElemT; (* data elements per stack element *) next: ...; (* next stack element *) END; (*record*) NodeT= POINTER TO StElemT; StackT*= RECORD ... END; (*record*) PROCEDURE (VAR st:StackT) Init*(); PROCEDURE (VAR st:StackT) CleanUp*(); (* clean the stack, think about versions with/without garbage collection *) PROCEDURE (VAR st:StackT) Push*(elem: ElemT); PROCEDURE (VAR st:StackT) Pop*(): ElemT; (* think about versions with/without garbage collection *) PROCEDURE (VAR st:StackT) Empty*(): BOOLEAN; PROCEDURE (VAR st:StackT) NrOfElems*(): INTEGER; PROCEDURE (VAR st:StackT) Dump*(); (* dump blockwise *) END Stack.Überlegen Sie dazu auch, wieviel Speicherplatz z.B. 30 Stacks mit insgesamt 2000 Elementen benötigen:
Der einfachst gehaltene verfügbare Testtreiber ist als unverbindlicher Vorschlag bzw. Anregung zu verstehen. (Der Testtreiber ist für das Pow! System ausgelegt und bedarf in anderen Umgebungen eventuell einiger leichten Modifikationen.)