Compare commits
2 Commits
0b2a2e5cd0
...
2cb09552c2
| Author | SHA1 | Date | |
|---|---|---|---|
| 2cb09552c2 | |||
| 49c7132863 |
16
build.py
16
build.py
@@ -75,6 +75,22 @@ def scan_shared() -> list[Section]:
|
|||||||
|
|
||||||
assignments_dir = SHARED_DIR / "assignments"
|
assignments_dir = SHARED_DIR / "assignments"
|
||||||
if assignments_dir.exists():
|
if assignments_dir.exists():
|
||||||
|
subdirs = sorted(
|
||||||
|
d for d in assignments_dir.iterdir()
|
||||||
|
if d.is_dir() and should_include(d)
|
||||||
|
)
|
||||||
|
if subdirs:
|
||||||
|
subsections = []
|
||||||
|
for subdir in subdirs:
|
||||||
|
zip_name = f"assignments-{subdir.name}.zip"
|
||||||
|
create_zip(subdir, ZIPS_DIR / zip_name)
|
||||||
|
subsections.append(SubSection(
|
||||||
|
name=subdir.name,
|
||||||
|
zip_url=f"zips/{zip_name}",
|
||||||
|
files=list_files(subdir),
|
||||||
|
))
|
||||||
|
sections.append(Section(title="Assignments", subsections=subsections))
|
||||||
|
else:
|
||||||
zip_name = "assignments.zip"
|
zip_name = "assignments.zip"
|
||||||
create_zip(assignments_dir, ZIPS_DIR / zip_name)
|
create_zip(assignments_dir, ZIPS_DIR / zip_name)
|
||||||
sections.append(Section(
|
sections.append(Section(
|
||||||
|
|||||||
2
shared/notes-and-examples/2026.02.28/homework.py
Normal file
2
shared/notes-and-examples/2026.02.28/homework.py
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Homework:
|
||||||
|
# See youtube-playlists under Assignments
|
||||||
51
shared/notes-and-examples/2026.02.28/queues.py
Normal file
51
shared/notes-and-examples/2026.02.28/queues.py
Normal file
@@ -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()
|
||||||
Reference in New Issue
Block a user