您的位置:首页 > 编程语言 > C语言/C++

Construct Binary Tree from Preorder (Postorder) and Inorder Traversal

2014-12-08 20:46 351 查看
Construct Binary Tree from Preorder and Inorder Traversal

通过二叉树的 前序遍历序列 和 中序遍历序列 重构二叉树

步骤:

1、遍历前序遍历序列,每次遍历一个值,创建一个节点,并将节点压入栈,新创建的节点连接为栈顶节点的左孩子节点(如果第2步中的记录pop的节点非空,那么连接为该记录节点的右孩子)

2、每次压入新节点后需要进行一次比较,栈顶节点的值与中序遍历开头比较,如果相等,那么栈pop,中序遍历开头向后移动一位(后面一位作为开头),之后再次比较,直到不相等为止,如果存在一次栈pop,那么用一个变量记录之,直到最后一次pop,这个变量最终为最后一次pop的节点,如果没有pop,那么该节点赋值为空

3、反复进行1,2步,直到遍历完前序遍历序列,那么二叉树创建完毕,返回第一次创建的节点(那个节点为 root 哦,一开始要存储一下,此处为细节处理)

Construct Binary Tree from Postorder and Inorder Traversal

同上,自行修改算法即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐