Add homework for 2026.05.06
This commit is contained in:
18
notes-and-examples/2026.05.06/homework.py
Normal file
18
notes-and-examples/2026.05.06/homework.py
Normal 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)
|
||||||
|
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user