From 49c713286352c6330ee951c78ec398ae27d51f04 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 25 Feb 2026 16:46:21 -0800 Subject: [PATCH] Add queues and homework --- .../notes-and-examples/2026.02.28/homework.py | 2 + .../notes-and-examples/2026.02.28/queues.py | 51 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 shared/notes-and-examples/2026.02.28/homework.py create mode 100644 shared/notes-and-examples/2026.02.28/queues.py diff --git a/shared/notes-and-examples/2026.02.28/homework.py b/shared/notes-and-examples/2026.02.28/homework.py new file mode 100644 index 0000000..5c6267f --- /dev/null +++ b/shared/notes-and-examples/2026.02.28/homework.py @@ -0,0 +1,2 @@ +# Homework: +# See youtube-playlists under Assignments diff --git a/shared/notes-and-examples/2026.02.28/queues.py b/shared/notes-and-examples/2026.02.28/queues.py new file mode 100644 index 0000000..0004175 --- /dev/null +++ b/shared/notes-and-examples/2026.02.28/queues.py @@ -0,0 +1,51 @@ +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 + + +queue = Queue() +queue.append("first") +queue.append("second") +queue.append("third") +queue.popleft() +queue.popleft() +queue.print_queue()