由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问几个有关Binary tree的题
相关主题
问一道二叉树遍历的问题? 谢谢!问个1337网页上面的经典题
Construct Binary Tree from Inorder and Postorder Traversal[leetcode] Binary Tree from Inorder & Postorder Traversal
LeetCode题Binary Tree Inorder TraversalLeetCode construct Binary Tree
F家phone interview的一道题讨论一道leetcode上面的题
攒人品,amazon一面经历A question about how to uniquely represent a binary tree
树 inorder下个节点最好办法是啥G家新鲜面经
刷了半天题Tree的traversal也分BFS和DFS?
问一道算法题一个电面疑问
相关话题的讨论汇总
话题: curr话题: prev话题: binary话题: postorder话题: traversing
进入JobHunting版参与讨论
1 (共1页)
c*********t
发帖数: 2921
1
1. 如何用iterative 的方法实现postorder遍历binary tree?
recursive的方法太简单了。
好像inorder, preorder的iterative比较容易用stack就行了。可是postorder,我想不
出好的方法。谁能给个pseudo code?
2. 给定postorder 和 inorder遍历的结果,想个算法还原出binary tree.
3. 给定preorder 和 inorder遍历的结果,想个算法还原出binary tree.
我有三个包子,谁给回答对,就发包子给谁,一个包子一题。
给出pseudo code就行了。
谢谢!
g*******y
发帖数: 1930
2
才三个包子。。。
我以前贴过用stack实现postorder的code
你搜一下呢
重建树的时候,postorder数组的最后一个是根,在inorder数组中搜索到这个根,
inorder数组中左边的就是左子树的集合,右边就是又子树。
两边子树的集合就确定下来了。递归的建立左子树,柚子树,再跟当前的根连接起来就
行了。
c*********t
发帖数: 2921
3
咳,我穷呀。总共只有三个包子了。现在给你发两个。请笑纳!

【在 g*******y 的大作中提到】
: 才三个包子。。。
: 我以前贴过用stack实现postorder的code
: 你搜一下呢
: 重建树的时候,postorder数组的最后一个是根,在inorder数组中搜索到这个根,
: inorder数组中左边的就是左子树的集合,右边就是又子树。
: 两边子树的集合就确定下来了。递归的建立左子树,柚子树,再跟当前的根连接起来就
: 行了。

g*******y
发帖数: 1930
4
呵呵,笑纳了~
我还以为一个包子就是一个伪币,原来是10个,还不错,呵呵~

【在 c*********t 的大作中提到】
: 咳,我穷呀。总共只有三个包子了。现在给你发两个。请笑纳!
c*********t
发帖数: 2921
5
如果你多多回答问题,我就去借伪币,在发给你。呵呵!
还有一个愚蠢的问题,请别见笑,你多次在回答别的问题时提到 backtracking的方法
,我找了 CLR 的算法导论的书,好像没有提到过这个算法呀?什么书讲过这个算法?
谢谢!

【在 g*******y 的大作中提到】
: 呵呵,笑纳了~
: 我还以为一个包子就是一个伪币,原来是10个,还不错,呵呵~

g*******y
发帖数: 1930
6
呵呵,其实我也是新手,前几天才学的backtracking,用来做一些状态空间搜索的问题
比较普适的。
我是自己看的一个中文的算法书,估计你找不到。不过你可以在网上搜搜
"回溯法 剪枝"
另外就是我知道刘汝佳的那本算法竞赛的书里面有讲的,不过不知道那本书对新手会不
会太难了一些

【在 c*********t 的大作中提到】
: 如果你多多回答问题,我就去借伪币,在发给你。呵呵!
: 还有一个愚蠢的问题,请别见笑,你多次在回答别的问题时提到 backtracking的方法
: ,我找了 CLR 的算法导论的书,好像没有提到过这个算法呀?什么书讲过这个算法?
: 谢谢!

m*****f
发帖数: 1243
7


1. curr = prev = root
2. Initialize stack
3. while (true)
4. if ( curr is prev or a child of prev) //Traversing downwards
5. if (curr is a parent) //More traversing to do
6. stack.push(curr)
7. prev = curr
8. curr = curr.left
9. else //curr is an orphan: go upward
10. print (curr)
11. prev = curr
12. curr = stack(top)
13. if ( curr.left = prev) //Traversing upwa

【在 c*********t 的大作中提到】
: 1. 如何用iterative 的方法实现postorder遍历binary tree?
: recursive的方法太简单了。
: 好像inorder, preorder的iterative比较容易用stack就行了。可是postorder,我想不
: 出好的方法。谁能给个pseudo code?
: 2. 给定postorder 和 inorder遍历的结果,想个算法还原出binary tree.
: 3. 给定preorder 和 inorder遍历的结果,想个算法还原出binary tree.
: 我有三个包子,谁给回答对,就发包子给谁,一个包子一题。
: 给出pseudo code就行了。
: 谢谢!

1 (共1页)
进入JobHunting版参与讨论
相关主题
一个电面疑问攒人品,amazon一面经历
全部答出来了,还是被amazon onsite据了树 inorder下个节点最好办法是啥
CC150最大的好处刷了半天题
感觉Binary Tree Postorder Traversal的iterative是三种traversal中最难的问一道算法题
问一道二叉树遍历的问题? 谢谢!问个1337网页上面的经典题
Construct Binary Tree from Inorder and Postorder Traversal[leetcode] Binary Tree from Inorder & Postorder Traversal
LeetCode题Binary Tree Inorder TraversalLeetCode construct Binary Tree
F家phone interview的一道题讨论一道leetcode上面的题
相关话题的讨论汇总
话题: curr话题: prev话题: binary话题: postorder话题: traversing