What is a stack?

A stack is a data structure like a list. However, a stack is LIFO - Last In First Out. This means you can only ever access items at the top of the stack, just like with a stack of plates, a stack of books or the Towers of Hanoi game pictured below. You should think of a stack as vertical. So you push items onto or pop items from the top of the stack.

Isaac Computing

Stack Operations

Here are the main functions for a stack:

  • Push() - add to the stack
  • Pop() - retrieve from the stack.
  • Peek() - is there something more there? Takes a copy of the item but does not remove it.
  • IsEmpty() - is it empty?
  • IsFull() - is it full?

text

Considerations when pushing onto or popping off of a stack.

  • Push() - what if the stack is full? Trying to push onto a full stack results in a stack overflow error.
  • Pop() - what if the stack is empty? Trying to pop off an empty stack resulting in stack underflow error.

Queues

A queue is like a stack, but just like a queue of customers at a shop, a queue is FIFO - First in First out. New items are added to the back of the queue.

Queue Operations

  • Enqueue() - add an item to the queue.
  • Dequeue() - take an item from the front of the queue.
  • Peek() - return an item from the front of the queue without actually removing it from the queue.
  • IsEmpty() - is it empty?
  • IsFull() - is it full?

Trying to enqueue onto a full queue results in an overflow error.

Trying to dequeue from an empty queue results in an under flow error.

text


Craig and Dave - Stacks and Queues