StackQueue
StackQueue
class StackArray:
def __init__(self):
self.stack = []
def push(self, item):
self.stack.append(item)
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
return "Stack is empty"
def is_empty(self):
return len(self.stack) == 0
stack = StackArray()
stack.push(23)
stack.push(33)
stack.push(43)
print(stack.pop())
print(stack.pop())
print(stack.stack)
43
33
[23]
class Node:
def __init__(self , item):
self.item = item
self.next = None
class StackLinked:
def __init__(self):
self.top = None
def push(self , item):
new_node = Node(item)
new_node.next = self.top
self.top = new_node
def pop(self):
if not self.is_empty():
popped_item = self.top.item
self.top = self.top.next
return popped_item
return "Stack is empty"
def is_empty(self):
return self.top == 0
stack = StackLinked()
stack.push(44)
stack.push(21)
stack.push(76)
print(stack.pop())
current = stack.top
print("Stack is:")
while current:
print(current.item)
current = current.next
76
Stack is:
21
44
class QueueArray:
def __init__(self):
self.queue = []
def Rear(self , item):
self.queue.append(item)
def Font(self):
if not self.is_empty():
return self.queue.pop()
return "Queue is empty"
def is_empty(self):
return len(self.queue) == 0
queue = QueueArray()
queue.Rear(2)
queue.Rear(4)
queue.Rear(5)
print(queue.Font())
print(queue.queue)
5
[2, 4]
class Node:
def __init__(self, item):
self.item = item
self.next = None
class QueueLinkedList:
def __init__(self):
self.front = self.rear = None
def Font(self):
if not self.is_empty():
dequeued_item = self.front.item
self.front = self.front.next
if self.front is None:
self.rear = None
return dequeued_item
return "Queue is empty"
def is_empty(self):
return self.front is None
queue = QueueLinkedList()
queue.Rear(6)
queue.Rear(7)
queue.Rear(8)
print(queue.Font())
print(queue.Font())
while current:
print(current.item)
current = current.next
6
7