Menu

[r376]: / XLIFO.MPL  Maximize  Restore  History

Download this file

30 lines (21 with data), 448 Bytes

// EXAMPLE OF A LIFO DYNAMIC STACK IN MPL

##LIBHDR

.NODE.DATA : 1
.NODE      : 2

STACK.PUSH(STACK,DATA;NODE) [
  NODE=NODE.INIT(VNEW(.NODE));
  NODE!.NODE.DATA=DATA;
  LIFO.PUSH(STACK,NODE)
]

STACK.PULL(STACK;NODE,DATA) [
  NODE=LIFO.PULL(STACK);
  DATA=NODE!.NODE.DATA;
  VEND(NODE);
  DATA
]

.STACK=0

.(;I) [
  I=0; ++I<20 @ STACK.PUSH(.STACK,I);
  !.STACK @ WRITEF("%I3",STACK.PULL(.STACK));
  NEWLINE();
0]

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.