coderz.py

Keep Coding Keep Cheering!

Implementation of Stack in Python

LIFO Last In First Out in Stack

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. 👈😲
LIFO, last-in-first-out in Stack
  • 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.

Instagram

Facebook

Leave a Comment

Your email address will not be published. Required fields are marked *

Advertisement