Skip to content

Commit 0332ac3

Browse files
keonclaude
andcommitted
Fix ruff lint: Optional → X | None, sort imports, wrap long docstring
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f0fb029 commit 0332ac3

2 files changed

Lines changed: 15 additions & 13 deletions

File tree

algorithms/data_structures/bst.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,26 @@
1414
"""
1515
from __future__ import annotations
1616

17-
from typing import Optional
18-
1917

2018
class Node:
2119
def __init__(self, data: int) -> None:
2220
self.data: int = data
23-
self.left: Optional[Node] = None
24-
self.right: Optional[Node] = None
21+
self.left: Node | None = None
22+
self.right: Node | None = None
2523

2624

2725
class BST:
2826
def __init__(self) -> None:
29-
self.root: Optional[Node] = None
27+
self.root: Node | None = None
3028

31-
def get_root(self) -> Optional[Node]:
29+
def get_root(self) -> Node | None:
3230
return self.root
3331

3432
def size(self) -> int:
3533
"""Return the number of nodes in the tree. Complexity: O(n)."""
3634
return self._recur_size(self.root)
3735

38-
def _recur_size(self, root: Optional[Node]) -> int:
36+
def _recur_size(self, root: Node | None) -> int:
3937
if root is None:
4038
return 0
4139
return 1 + self._recur_size(root.left) + self._recur_size(root.right)
@@ -44,7 +42,7 @@ def search(self, data: int) -> bool:
4442
"""Return True if data exists in the tree. Complexity: O(log n) average."""
4543
return self._recur_search(self.root, data)
4644

47-
def _recur_search(self, root: Optional[Node], data: int) -> bool:
45+
def _recur_search(self, root: Node | None, data: int) -> bool:
4846
if root is None:
4947
return False
5048
if root.data == data:
@@ -55,7 +53,11 @@ def _recur_search(self, root: Optional[Node], data: int) -> bool:
5553
return self._recur_search(root.left, data)
5654

5755
def insert(self, data: int) -> bool:
58-
"""Insert data into the tree. Return False if data already exists. Complexity: O(log n) average."""
56+
"""Insert data into the tree.
57+
58+
Return False if data already exists.
59+
Complexity: O(log n) average.
60+
"""
5961
if self.root:
6062
return self._recur_insert(self.root, data)
6163
else:
@@ -78,7 +80,7 @@ def _recur_insert(self, root: Node, data: int) -> bool:
7880
root.right = Node(data)
7981
return True
8082

81-
def preorder(self, root: Optional[Node]) -> list[int]:
83+
def preorder(self, root: Node | None) -> list[int]:
8284
"""Return list of node values in preorder (root, left, right)."""
8385
result: list[int] = []
8486
if root:
@@ -87,7 +89,7 @@ def preorder(self, root: Optional[Node]) -> list[int]:
8789
result.extend(self.preorder(root.right))
8890
return result
8991

90-
def inorder(self, root: Optional[Node]) -> list[int]:
92+
def inorder(self, root: Node | None) -> list[int]:
9193
"""Return list of node values in inorder (left, root, right)."""
9294
result: list[int] = []
9395
if root:
@@ -96,7 +98,7 @@ def inorder(self, root: Optional[Node]) -> list[int]:
9698
result.extend(self.inorder(root.right))
9799
return result
98100

99-
def postorder(self, root: Optional[Node]) -> list[int]:
101+
def postorder(self, root: Node | None) -> list[int]:
100102
"""Return list of node values in postorder (left, right, root)."""
101103
result: list[int] = []
102104
if root:

tests/test_sorting.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from algorithms.sorting import (
44
bitonic_sort,
55
bogo_sort,
6-
insertion_sort,
76
bubble_sort,
87
bucket_sort,
98
cocktail_shaker_sort,
@@ -12,6 +11,7 @@
1211
cycle_sort,
1312
exchange_sort,
1413
gnome_sort,
14+
insertion_sort,
1515
max_heap_sort,
1616
merge_sort,
1717
min_heap_sort,

0 commit comments

Comments
 (0)