Data update

This commit is contained in:
Ingy döt Net 2026-04-30 12:34:36 -04:00
parent 4bb20c9b71
commit cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions

View file

@ -0,0 +1,43 @@
MODULE StackOfInteger;
TYPE T = INTEGER;
Element = RECORD value : T; next : POINTER TO Element END;
StackRecord = RECORD top : POINTER TO Element END;
Stack* = POINTER TO StackRecord;
PROCEDURE push*( s : Stack; v : T );
VAR newElement : POINTER TO Element;
BEGIN
NEW( newElement );
newElement.value := v;
newElement.next := s.top;
s.top := newElement
END push;
PROCEDURE peek*( s : Stack ) : T;
BEGIN
RETURN s.top.value
END peek;
PROCEDURE pop*( s : Stack ) : T;
VAR v : T;
BEGIN
v := peek( s );
s.top := s.top.next
RETURN v
END pop;
PROCEDURE empty*( s : Stack ) : BOOLEAN;
BEGIN
RETURN s.top = NIL
END empty;
PROCEDURE newStack*() : Stack;
VAR s : Stack;
BEGIN
NEW( s );
s.top := NIL;
RETURN s
END newStack;
END StackOfInteger.

View file

@ -0,0 +1,26 @@
MODULE UseStack; (* use the StackOfInteger module *)
IMPORT Out, SI := StackOfInteger; (* imports StackOfInteger under the name "SI" *)
VAR st : SI.Stack;
v, sum : INTEGER;
BEGIN
st := SI.newStack(); (* create a stack *)
SI.push( st, 1 ); (* add some items *)
SI.push( st, 23 );
SI.push( st, 456 );
WHILE ~ SI.empty( st ) DO (* unstack, sum and print the items *)
v := SI.pop( st );
INC( sum, v );
Out.Int( v, 0 );
IF ~ SI.empty( st ) THEN
Out.String( " (" );Out.Int( SI.peek( st ), 0 );Out.String( ")" )
END;
Out.Ln
END;
Out.String( "sum: " );Out.Int( sum, 0 );Out.Ln
END UseStack.