TP: HAMZA ELMAALOUMI
STACK AND QUEUE
class element:
def __init__(self, val):
[Link] = val
[Link] = None
class queue:
def __init__(self):
[Link] = None
[Link] = None
def isEmpty(self):
if [Link] == None:
return True
return False
def size(self):
if [Link]():
return 0
count = 0
current = [Link]
while current != None:
count += 1
current = [Link]
return count
def enqueue(self, el: element):
if [Link]():
[Link] = el
[Link] = el
[Link] = None
else:
[Link] = el
[Link] = None
[Link] = el
return True
def dequeue(self):
if [Link]():
return False
poped_el = [Link]
[Link] = [Link]
if [Link] is None:
[Link] = None
return poped_el
def peek(self):
if [Link]():
return False
return [Link]
def display(self):
if [Link]():
return False
data = []
current = [Link]
while current != None:
[Link]([Link])
current = [Link]
return data
el1 = element(5)
el2 = element(10)
el3 = element(13)
queue = queue()
[Link](el1)
[Link](el2)
[Link](el3)
res = [Link]()
if res:
print("Queue elements:", res)
print("Queue size:", [Link]())
[Link]()
res = [Link]()
if res:
print("Queue elements after one dequeue:", res)
print("Queue size after one dequeue:", [Link]())
print("Front element after one dequeue:", [Link]().val)
Output after execution
Queue elements: [5, 10, 13]
Queue size: 3
Queue elements after one dequeue: [10, 13]
Queue size after one dequeue: 2
Front element after one dequeue: 10
class element:
def __init__(self, val):
[Link] = val
[Link] = None
class stack:
def __init__(self):
[Link] = None
def isEmpty(self):
if [Link] == None:
return True
return False
def size(self):
if [Link]():
return 0
count = 0
current = [Link]
while current != None:
count += 1
current = [Link]
return count
def push(self, el: element):
try:
if [Link]():
[Link] = el
[Link] = None
else:
[Link] = [Link]
[Link] = el
return True
except Exception as e:
return False
def pop(self):
if [Link]():
return False
poped_el = [Link]
[Link] = [Link]
return poped_el
def peek(self):
if [Link]():
return False
return [Link]
def display(self):
if [Link]():
return False
data = []
current = [Link]
while current != None:
[Link]([Link])
current = [Link]
return data
el1 = element(1)
el2 = element(2)
el3 = element(3)
s = stack()
[Link](el1)
[Link](el2)
[Link](el3)
res = [Link]()
if res:
print("Stack elements:", res)
if [Link]():
print("Stack size:", [Link]())
if [Link]():
print("Top element:", [Link]().val)
popped = [Link]()
if popped:
print("Popped element:", [Link])
print("Stack after pop:", [Link]())
Output after execution
Stack elements: [3, 2, 1]
Stack size: 3
Top element: 3
Popped element: 3
Stack after pop: [2, 1]