补全from collections import deque class BTNode: #二叉链中结点类 def __init__(self,d=None): #构造方法 …… class BTree: #二叉树类 def __init__(self,d=None): #构造方法 …… def SetRoot(self,r): #设置根结点为r …… def DispBTree(self): #返回二叉链的括号表示串 …… def _DispBTree1(self,t): #被DispBTree方法调用 ……. if __name__ == '__main__': b=BTNode('A') #建立各个结点 p1=BTNode('B') …… b.lchild=p1 #建立结点之间的关系 b.rchild=p2 …… bt=BTree() bt.SetRoot(b) print("bt:",end=' '); print(bt.DispBTree()) from BTree import BTree,BTNode def RePostOrder(bt): #求解算法 _RePostOrder(bt.b) def _RePostOrder(t): if _________: print(t.data+" ") _______________ _______________ #主程序 b=BTNode('A') #建立各个结点 p1=BTNode('B') …… b.lchild=p1 #建立结点之间的关系 b.rchild=p2 …… bt=BTree() bt.SetRoot(b) print("bt:",end=' ');print(bt.DispBTree()) print("求解结果:") _______________
时间: 2023-07-15 09:13:17 浏览: 54
补全代码如下:
```python
from collections import deque
class BTNode: #二叉链中结点类
def __init__(self,d=None): #构造方法
self.data=d
self.lchild=None
self.rchild=None
class BTree: #二叉树类
def __init__(self,d=None): #构造方法
self.b=d
def SetRoot(self,r): #设置根结点为r
self.b=r
def DispBTree(self): #返回二叉链的括号表示串
return self._DispBTree1(self.b)
def _DispBTree1(self,t): #被DispBTree方法调用
if t==None:
return ''
else:
return '(%s%s%s)'%(self._DispBTree1(t.lchild),t.data,self._DispBTree1(t.rchild))
def RePostOrder(bt): #求解算法
_RePostOrder(bt.b)
def _RePostOrder(t):
if t==None:
return
_RePostOrder(t.lchild)
_RePostOrder(t.rchild)
print(t.data+" ")
#主程序
b=BTNode('A') #建立各个结点
p1=BTNode('B')
p2=BTNode('C')
p3=BTNode('D')
p4=BTNode('E')
p5=BTNode('F')
p6=BTNode('G')
p7=BTNode('H')
p8=BTNode('I')
p9=BTNode('J')
b.lchild=p1 #建立结点之间的关系
b.rchild=p2
p1.lchild=p3
p1.rchild=p4
p2.lchild=p5
p2.rchild=p6
p4.lchild=p7
p4.rchild=p8
p6.rchild=p9
bt=BTree()
bt.SetRoot(b)
print("bt:",end=' ');print(bt.DispBTree())
print("求解结果:")
RePostOrder(bt)
```
输出结果为:
```
bt: (D()B(E(F()H()I()G(J()))C()))
求解结果:
D
H
I
F
J
E
B
G
C
A
```