File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ class Node :
2+ def __init__ (self , info ):
3+ self .info = info
4+ self .left = None
5+ self .right = None
6+
7+ def __str__ (self ):
8+ return str (self .info )
9+
10+
11+ class BinarySearchTree :
12+ def __init__ (self ):
13+ self .root = None
14+
15+ def create (self , val ):
16+ if self .root == None :
17+ self .root = Node (val )
18+ else :
19+ current = self .root
20+ while True :
21+ if val < current .info :
22+ if current .left :
23+ current = current .left
24+ else :
25+ current .left = Node (val )
26+ break
27+ elif val > current .info :
28+ if current .right :
29+ current = current .right
30+ else :
31+ current .right = Node (val )
32+ break
33+ else :
34+ break
35+
36+ def height (node ):
37+ if node is None :
38+ return - 1
39+ return 1 + max (height (node .left ), height (node .right ))
40+
41+ def tree_height_from_list (data ):
42+ bst = BinarySearchTree ()
43+ for x in data :
44+ bst .create (x )
45+ return height (bst .root )
46+
47+ if __name__ == "__main__" :
48+ import doctest
49+ doctest .testmod ()
You can’t perform that action at this time.
0 commit comments