Created
July 20, 2021 03:20
-
-
Save Edald123/3da5e7e04129b3ef94f812b988742cc0 to your computer and use it in GitHub Desktop.
Stack in Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from linked_list import Node | |
class Stack: | |
def __init__(self, name): | |
self.size = 0 | |
self.top_item = None | |
self.limit = 1000 | |
self.name = name | |
def push(self, value): | |
if self.has_space(): | |
item = Node(value) | |
item.set_next_node(self.top_item) | |
self.top_item = item | |
self.size += 1 | |
else: | |
print("No more room!") | |
def pop(self): | |
if self.size > 0: | |
item_to_remove = self.top_item | |
self.top_item = item_to_remove.get_next_node() | |
self.size -= 1 | |
return item_to_remove.get_value() | |
print("This stack is totally empty.") | |
def peek(self): | |
if self.size > 0: | |
return self.top_item.get_value() | |
print("Nothing to see here!") | |
def has_space(self): | |
return self.limit > self.size | |
def is_empty(self): | |
return self.size == 0 | |
def get_size(self): | |
return self.size | |
def get_name(self): | |
return self.name | |
def print_items(self): | |
pointer = self.top_item | |
print_list = [] | |
while(pointer): | |
print_list.append(pointer.get_value()) | |
pointer = pointer.get_next_node() | |
print_list.reverse() | |
print("{0} Stack: {1}".format(self.get_name(), print_list)) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment