from collections import deque
class Tree:
def __init__(self,data):
self.data = data
self.ltree =None
self.rtree =None
a=Tree('a')
b=Tree('b')
c=Tree('c')
d=Tree('d')
e=Tree('e')
f=Tree('f')
a.ltree=b
a.rtree=c
b.ltree=d
b.rtree=e
c.ltree=f
c.rtree=None
root = a```
```python
def pre_ord(root):
if root:
print(root.data,end=',')
pre_ord(root.ltree)
pre_ord(root.rtree)
print('##### 先序遍历 #####')
pre_ord(root)
print('\n')
中序
def mid_ord(root):
if root:
mid_ord(root.ltree)
print(root.data,end=',')
mid_ord(root.rtree)
print('##### 中序遍历 #####')
mid_ord(root)
print('\n')
后序
def fial_ord(root):
if root:
fial_ord(root.ltree)
fial_ord(root.rtree)
print(root.data,end=',')
print('##### 后序遍历 #####')
fial_ord(root)
print('\n')
先层次
def floor_ord(root):
seque =deque()
seque.append(root)
while len(seque)>0:
node = seque.popleft()
print(node.data,end=',')
if node.ltree:
seque.append(node.ltree)
if node.rtree:
seque.append(node.rtree)
floor_ord(root)