Overview of Stack Data Structure 🤔😗
- A stack is an ordered collection of items where the addition of new items and the removal of existing items always takes place at the same end.
- This end is commonly referred to as the “top.”
- The end opposite the top is known as the “base.”
- The base of the stack is significant since items stored in the stack that are closer to the base represent those that have been in the stack the longest.
- The most recently added item is the one that is in position to be removed first.
- This ordering principle is sometimes called LIFO, last-in-first-out. 👈😲
- It provides an ordering based on the length of time in the collection.
- Newer items are near the top, while older items are near the base.
- Note how the first items “pushed” to the stack begin at the base, and as items are “popped” out.
- Stacks are fundamentally important, as they can be used to reverse the order of items.
- The order of insertion is the reverse of the order of removal.
- Considering this reversal property, you can perhaps think of examples of stacks that occur as you use your computer. For example, every web browser has a Back button. 🤔🤓
- As you navigate from web page to web page, those pages are placed on a stack (actually it is the URLs that are going on the stack). 😍😍
- The current page that you are viewing is on the top and the first page you looked at is at the base.
- If you click on the Back button, you begin to move in reverse order through the pages.
Now we are going to implement our own Stack class 👇👇
class Stack: def __init__(self): self.items = [] def isEmpty(self) -> bool: return self.items == [] def push(self, data: any) -> list: self.items.append(data) def pop(self) -> any: return self.items.pop() def peek(self) -> any: return self.items[len(self.items) - 1] def size(self) -> int: return len(self.items) s = Stack() #Add element to Stack s.push(1) s.push(2) s.push("hello") #size of stack n = s.size() print("Stack Size {}".format(n)) #delete element print(s.pop()) #pick top element print(s.peek()) #check empty print(s.isEmpty())
Recommended Reading: Balanced Parentheses Check in Python 👈
Follow Me ❤😊
If you like my post please follow me to read my latest post on programming and technology.
Leave a Comment