#二叉树sb采用顺序存储结构,设计一个算法建立对应的二叉链。sb根节点编号从0开始
#思路:由二叉链的结点索引顺序存储结构的结点。相当于二叉链建立一个结点,就去访问顺序存储结构相应的结点把值存储进去,然后设置其左孩子和右孩子域。
#通过左孩子和右孩子的递归,可以实现填充每一个结点。有一点先序遍历的意味。
#二叉树sb采用顺序存储结构,设计一个算法建立对应的二叉链。sb根节点编号从0开始
#思路:由二叉链的结点索引顺序存储结构的结点。相当于二叉链建立一个结点,就去访问顺序存储结构相应的结点把值存储进去,然后设置其左孩子和右孩子域。
#通过左孩子和右孩子的递归,可以实现填充每一个结点。有一点先序遍历的意味。
def Trans(sb):
bt=BTree()
bt.SetRoot(_Trans(sb,0))
return bt
def _Trans(sb,i):
if i<len(sb)-1:#如果超过了返回None,回到上一层递归
if sb[i]!='#':
t=BTNode(sb[i])
t.lchild=_Trans(sb,2*n+1)#这个sb的根节点从0开始编号
t.rchild=_Trans(sb,2*n+2)
return t
else:
return None
else:return None