Stack using Linked List

A stack, analogous to a stack of cafeteria plates, supports only two operations, push and pop. A stack is sometimes called a LIFO queue, for Last-In First-Out, because the last item pushed is the first item popped.

A linked list is a natural way to implement a stack. cons accomplishes push, and first and rest accomplish pop. Both push and pop are provided as macros in Lisp.


(setq stack (cons item stack))   ; push

(setq item (first stack))        ; pop
(setq stack (rest stack))


stack = new Cons(item, stack);   ; push

item = first(stack);            ; pop
stack = rest(stack);

Both push and pop are O(1) and very fast.

pop of an empty stack is an error; this will cause a null dereference hardware trap or an exception.

Contents    Page-10    Prev    Next    Page+10    Index