Stack Representation Using Array
class StackArray:
def __init__(self):
[Link] = []
def push(self, item):
[Link](item)
def pop(self):
if not self.is_empty():
return [Link]()
else:
return "Stack is empty"
def is_empty(self):
return len([Link]) == 0
stack = StackArray()
[Link](8)
[Link](3)
[Link](4)
print([Link]())
print([Link]())
print([Link])
4
3
[8]
Stack Representation Using Linked List
class Node:
def __init__(self , item):
[Link] = item
[Link] = None
class StackLinked:
def __init__(self):
[Link] = None
def push(self , item):
new_node = Node(item)
new_node.next = [Link]
[Link] = new_node
def pop(self):
if not self.is_empty():
popped_item = [Link]
[Link] = [Link]
return popped_item
return "Stack is empty"
def is_empty(self):
return [Link] == 0
stack = StackLinked()
[Link](4)
[Link](2)
[Link](6)
print([Link]())
current = [Link]
print("Stack items are:")
while current:
print([Link])
current = [Link]
6
Stack items are:
2
4
Queue Representation Using Array
class QueueArray:
def __init__(self):
[Link] = []
def enqueue(self , item):
[Link](item)
def dequeue(self):
if not self.is_empty():
return [Link]()
return "Queue is empty"
def is_empty(self):
return len([Link]) == 0
queue = QueueArray()
[Link](1)
[Link](4)
[Link](9)
print([Link]())
print([Link])
9
[1, 4]
Queue Representation Using Linked List
class Node:
def __init__(self, item):
[Link] = item
[Link] = None
class QueueLinkedList:
def __init__(self):
[Link] = [Link] = None
def enqueue(self, item):
new_node = Node(item)
if self.is_empty():
[Link] = [Link] = new_node
else:
[Link] = new_node
[Link] = new_node
def dequeue(self):
if not self.is_empty():
dequeued_item = [Link]
[Link] = [Link]
if [Link] is None:
[Link] = None
return dequeued_item
return "Queue is empty"
def is_empty(self):
return [Link] is None
queue = QueueLinkedList()
[Link](61)
[Link](72)
[Link](18)
print([Link]())
#print([Link]())
while current:
print([Link])
current = [Link]
61