0% found this document useful (0 votes)
5 views6 pages

TP Stack Queue

The document contains Python implementations of a queue and a stack using linked lists. It defines classes for elements, queues, and stacks, with methods for common operations like enqueue, dequeue, push, pop, and displaying elements. The document also includes example usage and outputs for both data structures.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views6 pages

TP Stack Queue

The document contains Python implementations of a queue and a stack using linked lists. It defines classes for elements, queues, and stacks, with methods for common operations like enqueue, dequeue, push, pop, and displaying elements. The document also includes example usage and outputs for both data structures.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

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]

You might also like