Deden

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

PROGRAM PASCAL; USES WINCRT; TYPE POINTER=^DATA; DATA=RECORD TOP:INTEGER; NEXT:POINTER; END; VAR STACK:DATA; J:CHAR; I:POINTER; TOP:INTEGER;

PROCEDURE PUSH (VAR S:POINTER;X:INTEGER); VAR ISI:POINTER; BEGIN IF (ISI<>NIL) THEN BEGIN NEW(ISI); ISI^.TOP:=X; ISI^.NEXT:=S; S:=ISI; END ELSE WRITELN('STACK PENUH'); END; FUNCTION POP(VAR S:POINTER):INTEGER; VAR T:POINTER; BEGIN

IF (S<>NIL) THEN BEGIN T:=S; POP:=S^.TOP; S:=S^.NEXT; DISPOSE(T); END; END; Procedure Display(s:POINTER); Begin while s<> nil do begin write(s^.TOP:5); s:=s^.next; end; writeln; End;

BEGIN J:='Y'; REPEAT WRITELN('MASUKAN DATA [PUSH] DATA : ');READLN(TOP); PUSH(I,TOP); WRITELN('MASUKAN DATA LAGI [Y/T]');READLN(J); UNTIL(J='T'); IF J = 'T' THEN CLRSCR; BEGIN WRITELN('DATA YANG TELAH ANDA MASUKAN :'); WRITELN('============================='); DISPLAY(I); WRITELN('============================='); WRITELN;

REPEAT WRITELN('APAKAH ANDA INGIN MENGHAPUS ? : ');READLN(J); IF J='Y' THEN POP(I); DISPLAY(I); UNTIL (I=NIL); IF I=NIL THEN WRITELN('DATA HABIS'); END; END.

You might also like