-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbtree.py
More file actions
59 lines (50 loc) · 1.45 KB
/
btree.py
File metadata and controls
59 lines (50 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Tree(object):
def __init__(self, ltree=None, rtree=None, data=None):
self.data = data
self.ltree = ltree
self.rtree = rtree
class BTree(object):
def __init__(self, base):
self.base = base
def pre_out(self, tree_base):
'''
前序遍历
'''
if tree_base == None:
return
print(tree_base.data)
self.pre_out(tree_base.ltree)
self.pre_out(tree_base.rtree)
def in_out(self, tree_base):
'''
中序遍历
'''
if tree_base == None:
return
self.in_out(tree_base.ltree)
print(tree_base.data)
self.in_out(tree_base.rtree)
def post_out(self, tree_base):
'''
后序遍历
'''
if tree_base == None:
return
self.in_out(tree_base.rtree)
print(tree_base.data)
self.in_out(tree_base.ltree)
if __name__ == '__main__':
rtree2 = Tree(data=7)
ltree2 = Tree(data=6)
rtree = Tree(ltree=ltree2, rtree=rtree2, data=3)
ltree1 = Tree(data=4)
rtree1 = Tree(data=5)
ltree = Tree(ltree=ltree1, rtree=rtree1, data=2)
base = Tree(ltree=ltree, rtree=rtree, data=1)
btree = BTree(base)
print("----pre_out----")
btree.pre_out(btree.base)
print("----in_out----")
btree.in_out(btree.base)
print("----post_out----")
btree.post_out(btree.base)