Add homework for 2026.05.06

This commit is contained in:
2026-05-06 15:57:56 -07:00
parent cddf713c9a
commit f5e2fca2ac
2 changed files with 18 additions and 45 deletions

View File

@@ -0,0 +1,18 @@
#
class Student:
def __init__(self, name: str, year: int):
self.name = name
self.year = year
# homework: implement this Queue which orders students by year.
# students with a higher year are placed in front of students with a lower year
class Queue:
pass
def append(self, student: Student):
pass
def popleft(self) -> Student:
return Student(name="", year=0)

View File

@@ -1,45 +0,0 @@
# from 2026.02.28
class Node:
next_node: "None | Node" = None
prev_node: "None | Node" = None
def __init__(self, value):
self.value = value
class Queue:
front: "Node | None" = None
back: "Node | None" = None
def append(self, value):
if self.back is None:
self.front = Node(value)
self.back = self.front
else:
new_node = Node(value)
self.back.prev_node = new_node
new_node.next_node = self.back
self.back = new_node
def popleft(self):
if self.front is not None:
prev_front = self.front
prev_node_in_queue = self.front.prev_node
self.front.next_node = None
self.front.prev_node = None
if prev_node_in_queue is not None:
prev_node_in_queue.next_node = None
self.front = prev_node_in_queue
return prev_front
else:
return None
def print_queue(self):
current_node = self.front
while current_node is not None:
print(current_node.value)
current_node = current_node.prev_node
# from today