File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed
data_structures/binary_tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change 44from dataclasses import dataclass
55from typing import Any , Self
66
7+
78@dataclass
89class Node :
910 value : int
@@ -16,6 +17,7 @@ def __repr__(self) -> str:
1617 return str (self .value )
1718 return pformat ({f"{ self .value } " : (self .left , self .right )}, indent = 1 )
1819
20+
1921@dataclass
2022class BinarySearchTree :
2123 root : Node | None = None
@@ -75,19 +77,23 @@ def remove(self, value: int) -> None:
7577 self .remove (predecessor .value )
7678 node .value = predecessor .value
7779
80+
7881# 修复的递归函数
7982def inorder (curr_node : Node | None ) -> list [Node ]:
8083 """Inorder traversal (left, self, right)"""
8184 if curr_node is None :
8285 return []
8386 return inorder (curr_node .left ) + [curr_node ] + inorder (curr_node .right )
8487
88+
8589def postorder (curr_node : Node | None ) -> list [Node ]:
8690 """Postorder traversal (left, right, self)"""
8791 if curr_node is None :
8892 return []
8993 return postorder (curr_node .left ) + postorder (curr_node .right ) + [curr_node ]
9094
95+
9196if __name__ == "__main__" :
9297 import doctest
98+
9399 doctest .testmod (verbose = True )
You can’t perform that action at this time.
0 commit comments