Learn Stacks

Learn about the first-in-last-out data structure called a "stack". Study it conceptually and use it in practice. Apply what you've learned to the famous Towers of Hanoi problem!

Start[missing "en.views.course_landing_page.linear-data-structures.course_illustration" translation]

Key Concepts

Review core concepts you need to learn to master this subject

The stack data structure

A stack is a data structure that follows a last in, first out (LIFO) protocol. The latest node added to a stack is the node which is eligible to be removed first. If three nodes (a, b and, c) are added to a stack in this exact same order, the node c must be removed first. The only way to remove or return the value of the node a is by removing the nodes c and b.

Main methods of a stack data structure

The stack data structure has three main methods: push(), pop() and peek(). The push() method adds a node to the top of the stack. The pop() method removes a node from the top of the stack. The peek() method returns the value of the top node without removing it from the stack.

Stack overflow

Every stack has a size that determines how many nodes it can accommodate. Attempting to push a node in a full stack will result in a stack overflow. The program may crash due to a stack overflow.

A stack is illustrated in the given image. stackA.push(xg) will result in a stack overflow since the stack is already full.

Chevron Left Icon
Stacks: Conceptual
Lesson 1 of 2
Chevron Right Icon
  1. 1

    A stack is a data structure which contains an ordered set of data. Stacks provide three methods for interaction: - Push - adds data to the "top" of the stack - Pop - returns and removes data from...

  2. 2

    Stacks can be implemented using a linked list as the underlying data structure because it's more efficient than a list or array. Depending on the implementation, the top of the stack is equivalen...

  3. 3

    Let's take a minute to review what we've covered about stacks in this lesson. Stacks: - Contain data nodes - Support three main operations - Push adds data to the top of the stack - Pop remov...

  1. 1

    You have an understanding of how stacks work in theory, so now let's see how they can be useful out in the wild — with Python! Remember that there are three main methods that we want our stacks t...

  2. 2

    The stack's [...] and [...] methods are our tools to add and remove items from it. [...] additionally returns the value of the item it is removing. Keep in mind that we can only make modific...

  3. 3

    With stacks, size matters. If we're not careful, we can accidentally over-fill them with data. Since we don't want any stack overflow, we need to go back and make a few modifications to our methods...

  4. 4

    It's time to add a couple helper methods. Helper methods simplify the code we've written by abstracting and labeling chunks of code into a new function. Here's an example: [...] This might se...

  5. 5

    Nice work — you've built out a [...] class that can: - add a new item to the top via a [...] method - remove an item from the top and returns its value with a [...] method - return the val...

What you'll create

Portfolio projects that showcase your new skills

Pro Logo

How you'll master it

Stress-test your knowledge with quizzes that help commit syntax to memory

Pro Logo

Learn Stacks

Start[missing "en.views.course_landing_page.linear-data-structures.course_illustration" translation]