我想要一个知道后序和中序排列求先序排列的代码
时间: 2023-03-11 15:08:45 浏览: 75
答:我能够为您提供一段可以实现从后序和中序排列求先序排列的代码:def preorder(inorder, postorder):
if not inorder:
return None
root = postorder[-1]
# 找出根节点在中序中的位置
rootIndex = inorder.index(root)
# 划分左右子树
leftInorder = inorder[:rootIndex]
rightInorder = inorder[rootIndex + 1:]
# 找出左右子树的后序排列
leftPostorder = postorder[:len(leftInorder)]
rightPostorder = postorder[len(leftInorder):-1]
# 递归求得左右子树的先序排列
leftPreorder = preorder(leftInorder, leftPostorder)
rightPreorder = preorder(rightInorder, rightPostorder)
# 求出根节点的先序排列
preorder = [root]
# 合并左右子树的先序排列
if leftPreorder:
preorder.extend(leftPreorder)
if rightPreorder:
preorder.extend(rightPreorder)
return preorder