X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=collect%2Fbst.py;h=d39419494d3f482712f17e13a5ff6ce1e7c2ebcf;hb=532df2c5b57c7517dfb3dddd8c1358fbadf8baf3;hp=8602ce698d9c5d7970f890cfd97d97b8ccb4ffda;hpb=7ff2af6fe7bffea90dc4a31c93140c189917c659;p=python_utils.git diff --git a/collect/bst.py b/collect/bst.py index 8602ce6..d394194 100644 --- a/collect/bst.py +++ b/collect/bst.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +# © Copyright 2021-2022, Scott Gasch + +"""Binary search tree.""" + from typing import Any, Generator, List, Optional @@ -90,9 +94,7 @@ class BinarySearchTree(object): return self._find(value, node.right) return None - def _parent_path( - self, current: Optional[Node], target: Node - ) -> List[Optional[Node]]: + def _parent_path(self, current: Optional[Node], target: Node) -> List[Optional[Node]]: if current is None: return [None] ret: List[Optional[Node]] = [current] @@ -575,7 +577,11 @@ class BinarySearchTree(object): return self.depth() def repr_traverse( - self, padding: str, pointer: str, node: Optional[Node], has_right_sibling: bool + self, + padding: str, + pointer: str, + node: Optional[Node], + has_right_sibling: bool, ) -> str: if node is not None: viz = f'\n{padding}{pointer}{node.value}' @@ -590,9 +596,7 @@ class BinarySearchTree(object): else: pointer_left = "└──" - viz += self.repr_traverse( - padding, pointer_left, node.left, node.right is not None - ) + viz += self.repr_traverse(padding, pointer_left, node.left, node.right is not None) viz += self.repr_traverse(padding, pointer_right, node.right, False) return viz return "" @@ -628,9 +632,7 @@ class BinarySearchTree(object): else: pointer_left = "├──" - ret += self.repr_traverse( - '', pointer_left, self.root.left, self.root.left is not None - ) + ret += self.repr_traverse('', pointer_left, self.root.left, self.root.left is not None) ret += self.repr_traverse('', pointer_right, self.root.right, False) return ret