由买买提看人间百态

topics

全部话题 - 话题: 二叉树
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
i******t
发帖数: 158
1
来自主题: JobHunting版 - 判断(二叉)树是否镜像对称
还是按楼主的方法,加上dummy node, 变成完全二叉树, 就可以了
L***Q
发帖数: 508
2
来自主题: JobHunting版 - 问一个构建二叉树的问题
如果有duplicate,应该是无法唯一确定。一个三个node的例子:3 3 3.前序中序都这
结果,可以有好几种二叉树。
L***Q
发帖数: 508
3
来自主题: JobHunting版 - 问一个构建二叉树的问题
如果有duplicate,应该是无法唯一确定。一个三个node的例子:3 3 3.前序中序都这
结果,可以有好几种二叉树。
k*******r
发帖数: 355
4
来自主题: JobHunting版 - 找二叉树 两个最大的相同子树
找二叉树 两个最大的相同子树,这个怎么做
s*******n
发帖数: 97
5
来自主题: JobHunting版 - 找二叉树 两个最大的相同子树
lz意思是只有再一颗二叉树中找吧?
p********n
发帖数: 20
6
来自主题: JobHunting版 - 找二叉树 两个最大的相同子树
对二叉树进行DFS,将遍历过程中遇到的节点按顺序记下,得到一个长度为2N-1的节点
序列,就是欧拉序列。
K*********n
发帖数: 2852
7
来自主题: JobHunting版 - 问个二叉树删除结点的问题
就是,不会考这种问题是吧。好久不复习数据结构,今天写一个非BST的二叉树,写着写
着就遇到这个问题了,手生,莫笑哈。
c********t
发帖数: 5706
8
来自主题: JobHunting版 - 求二叉树最大路径和的变体题
响应号召,发中文题
二叉树求两结点间最大路径问题已经有很好解法。
现在有一个变体题,两点间最大路径必须要加上共同祖先到root这段。
比如:
3
/
4
/ \
1 2
结果为10
请问有什么好的解法?
我有一个笨解法,指数时间复杂度,为了不影响大家做题,会在跟帖贴出。
r*****e
发帖数: 146
9
来自主题: JobHunting版 - 如何随机找二叉树中的任意节点?
如何随机找二叉树中的任意节点? 谢谢!
g****y
发帖数: 240
10
来自主题: JobHunting版 - 如何随机找二叉树中的任意节点?
是给一个值找一个节点,还是说随机返回二叉树中的一个节点?
r**h
发帖数: 1288
11
我猜lz想问的是二叉树使用stack/循环的pre-order traversal的实现?
x********9
发帖数: 7
12
来自主题: JobHunting版 - 问一个二叉树面试问题
要求要数组 实现二叉树 and implement following methods:
set(K, V)
get(K)
求教各位高手
t**********r
发帖数: 2153
13
来自主题: JobHunting版 - 问一个二叉树面试问题
就是用数组存二叉树
w****r
发帖数: 15252
14
来自主题: JobHunting版 - 平衡二叉树的平衡是指什么
叶子都在一层上面就叫做平衡二叉树
p***y
发帖数: 637
15
cc150说不用背平衡二叉树。。看来时代变了
p**t
发帖数: 157
16
不会用栈遍历二叉树的 你让他用栈做DFS不是更不会。。。
N*****m
发帖数: 42603
17
来自主题: JobHunting版 - Re: 我x,海关问二叉树的是真的
【 以下文字转载自 Joke 讨论区 】
发信人: zhanglaosan (张老三), 信区: Joke
标 题: Re: 我x,海关问二叉树的是真的
发信站: BBS 未名空间站 (Wed Mar 1 17:16:00 2017, 美东)
http://mashable.com/2017/02/28/software-engineer-jfk-detained-questioning/?utm_cid=mash-com-fb-main-link#Zr2ZscMw_5q6
d**********1
发帖数: 569
18
来自主题: WaterWorld版 - 借人气问问,C++二叉树
有,但是实现起来效率不高且麻烦。
C/C++的优点之一就是运行的速度和算法效率,所以有相当一部分人用C++就是为了算法
和速度,用算法的人多了,所以愿意讨论和实现的人就多了。
Basic PHP Python ...的和C++比起来,特点是入门容易,开发速度快,管理起来(相
对)简单。所以同时要用到这些语言和二叉树检索的机会太少了,用的少,基本也就没
人讨论了。

FORTRAN
c*********7
发帖数: 19373
19
来自主题: WaterWorld版 - 借人气问问,C++二叉树
二叉树是算法吧,这个跟语言没关系。
z*****a
发帖数: 9790
20
来自主题: WaterWorld版 - 借人气问问,C++二叉树
二叉树是一种数据结构,理论上任何编程语言都可以实现,只不过c/c++的指针实现起
来效率高

FORTRAN
d******8
发帖数: 2191
21
来自主题: WaterWorld版 - 借人气问问,C++二叉树
好的数据结构基本都是在底层上实现,比如数据库搜索,页面搜索。MySQL的数据结构
是类似于二叉树的B-tree,B+tree,当然还有其他的结构像Hash。C++就是为了实现这些
底层的结构和算法的,所以C++很让人痛苦。网络编程就基本不用C++。

FORTRAN
b**b
发帖数: 7
22
来自主题: WaterWorld版 - 借人气问问,C++二叉树
C++找到好的类库,也可以不用自己实现。
其他的语言也可以自己从头写一个二叉树。
c*********r
发帖数: 2733
23
++ means二叉树 and more
x****o
发帖数: 21566
24
明明念C佳佳,Cxx里面的xx才是二叉树的意思。
x****o
发帖数: 21566
25
来自主题: Joke版 - 破笑话 -- 二叉树
"你看,爸爸当时跟美国人结婚,一个美国人变成两个美国人。然后我们再分别结婚,
两个美国人变成四个美国人。然后我们再分别结婚,就有了8个美国人。这...",老陈
顿了顿,指向白板,对着女儿说,“...就是一棵(满)二叉树”
“我可能要红了” -- 一包被拆开的卫生巾哆嗦着对其他卫生巾说
老师带学生过马路,小明突然捂住老师高耸的胸...老师:小明你干什么? 小明:我扶
奶奶过马路! 老师:滚!
当年高考第二门是数学,家长们都在嘱咐自家小孩认真审题好好检查,只有我妈说,“
能提前半小时交卷子吗?要不赶上晚高峰,太堵了”
今天我突然意识到超级马里奥很可能是个流浪汉。他每天醒来都穿同一身衣服,在下水
道里跑来跑去,揍别人抢他们的钱,然后你猜他拿钱干啥?买蘑菇
非主流强子惨遭女友抛弃,割腕自杀。妈妈抱着强子呜咽:老天爷啊你太不公平,我是
做了什么孽呀,你让我一个白发人送红、橙、黄、绿、蓝、靛、紫发人啊...
我有了一个惊人的发现刘备的两个儿子:刘封,刘禅连起来就是封禅,说明他有帝王之
心。孙坚的两个儿子:孙权,孙策连起来是权策,说明他善于权策。再来看看老曹家:曹
操,曹仁,曹真,曹爽曹家祖宗真是个... 阅读全帖
p*e
发帖数: 6785
26
上次google面试,一个大牛都不会reverse 二叉树
这海关居然问怎么balance bst
可能是一个马工专业去海关,被老黑老莫鄙视,身怀绝技怀才不遇,只好和书呆锁男得
瑟。
S*******w
发帖数: 24236
27
赞。

集的一些常见二叉树面试问题(包括我亲身经历的)。多做多练习,相信你一定可以掌
握好。
left
i***h
发帖数: 12655
28
这个是那本算法书二叉树一节后的题
网上查了下,除非节点带对父节点的指针才行,好象作弊了(这个额外的指针就是O(n)空
间了)
有答案么?
谢谢
c*********e
发帖数: 16335
29
按层遍历二叉树,无非就是把每个节点当作数组arr里的一個元素,一個index对应一個
节点。比如根节点index=0 (2的0次方 减 1),第二层的最左边那个节点index=1 (2
的一次方 减 1),第三层的最左边那个节点的index=3 (2的二次方 减 1 )第四层的最
左边那个节点的index=7 (2的三次方 减 1),etc.
所以,第一层就是arr[0]; (最左边节点index 0 为 2的0次方 减 1)
第二层就是arr[1],arr[2]; (最左边节点index 1 为 2的1次方 减 1,最右边节点
index 2 为 下一层第一個节点的index(值为3) 减 1)
第三层就是arr[3],arr[4],arr[5],arr[6]; (最左边节点index 3 为 2的2次方 减 1
,最右边节点index 6 为 下一层第一個节点的index(值为7) 减 1)
etc.
这样就可以按层遍历了。
m********t
发帖数: 13072
30
来自主题: Programming版 - 二叉树 (转载)
【 以下文字转载自 JobHunting 讨论区 】
发信人: moonlightt (月光妹妹), 信区: JobHunting
标 题: 二叉树
发信站: BBS 未名空间站 (Fri Oct 17 17:58:54 2014, 美东)
直到今年春季,我都不明白这词什么意思, 懒得理
某一天,无聊之际,查了一下对照英文,我考。。。
l****r
发帖数: 105
31
来自主题: Programming版 - 求教:根据给定数组创建二叉树
谢谢回复,不过我完全没看懂后半句
我的数组定义方式是
new int[] { 5, 4, 8, 11, -1, 13, 4, 7, 2, -1, -1, -1, -1, 5, 1 }
生成下面的二叉树
5
/
4 8
/ /
11 13 4
/ /
7 2 5 1
m******n
发帖数: 354
32
请问银行实际操作时有用binomial tree的吗,还是都用black-scholes公式啊?
如果有用二叉树的话, 是用JR的多还是用CRR的多呢?谢谢!
c****p
发帖数: 6474
33
来自主题: WaterWorld版 - 借人气问问,C++二叉树
你说的应该是二叉搜索树BST。
有些数据结构的底层实现实际上是用BST及其变种实现的,你没有直观地看到BST而已。
就我所知,C++里面的set是用红黑树(平衡BST)实现的。

FORTRAN
b***u
发帖数: 12010
34
原楼主其实是牛人. c++ stl的map是2叉树写的,其他的java用的hash table,其他不
清楚,可能也不是2叉树。

FORTRAN
b*******8
发帖数: 37364
35
来自主题: JobHunting版 - 判断(二叉)树是否镜像对称
In Order(先左再右边)遍历,访问左孩子则记录1,访问右孩子记录2,返回父节点记
录为0,得到一个记录串。
再来一次镜像操作:
In Order(先右边左边)遍历,访问右孩子则记录1,访问左孩子记录2,返回父节点记
录为0。
两次操作得到的记录一样,则对称。事实上,做第二次遍历时,只要时时跟第一的结果
比较,一旦发现不同马上就知道不对称,退出。此方法可简单扩展到N叉树。
S******t
发帖数: 151
36
我给的那个方法是对二叉树找祖先的 -0-
l*n
发帖数: 529
37
来自主题: JobHunting版 - 问一个二叉树面试问题
这里的二叉跟get/set一点关系都没有啊,后者根本就不是二叉的操作。
a********m
发帖数: 15480
38
来自主题: JobHunting版 - 判断(二叉)树是否镜像对称
binary tree用递归应该可以吧。每个节点相等,左子树和右子树交叉相等就可以了。
bool mirrow(node* p1, node* p2)
{
if(!p1 && !p2) return true;
if(!p1 || !p2 )return false;
return p1->data == p2->data && mirrow(p1->left, p2->right) && mirrow(p1->
right, p2->left);
}
调用!root || mirrow(root->left,root->right);就可以了。
n叉树应该类似。
s******n
发帖数: 3946
39
来自主题: JobHunting版 - 算法题:合并两个排序二叉树
应该充分利用排序的特性,假设第二颗树序列为n1,n2,n3....
n1插入第一颗树后,n2不用从顶端开始查,可以从n1插入位置开始向上搜索(前提是每
个node都有parent指针)
K*********n
发帖数: 2852
40
来自主题: JobHunting版 - 问个二叉树删除结点的问题
复杂度我觉得还好,这么写,如果是recursion的话。迭代的不好写。要是搞balance的
话,那就又复杂多了,再拓展到多叉树……哇哈哈
d****o
发帖数: 32610
41
我以前搞C#的时候用的都是四叉树

FORTRAN
r*****8
发帖数: 2560
42
来自主题: WaterWorld版 - 借人气问问,C++二叉树
“最后,希望你能继续努力学习C++。语言学习不在数量,在于质量。能够精通一门比
泛泛学习多门语言更有意义,也更见功力。”
谢谢指点!
“语言学习不在数量,在于质量。”
这些语言都是被逼无奈才学的,工作需要,不同平台,不同环境,只好继续学。数据处
理完了,或者是达到目的了,就不用了。
“你所说的其他语言没有用,可能性有两个:第一,你没有用;第二,你没有显示的用
,但是事实上你所用的函数已经帮你完成了这些工作。”
我很同意,Python、R里面建立多维矩阵,数据量也很大,只是一个命令,没说怎么建
的。搜索多维矩阵,也只是一个函数,没显示怎么搜索。估计里面用到了二叉结构。

: 最后,希望你能继续努力学习C++。语言学习不在数量,在于质量。能够精通一门比泛
: 泛学习多门语言更有意义,也更见功力。
K*****u
发帖数: 241
43
判断一棵二叉树是否平衡
在第五版前Gayle认为只需要判断最高深度和最低深度的值是否相差不超过1就可以。
解法虽然简单,但偷换了概念,是错误的
虽然最高深度和最低深度的值相差不超过1的树一定是平衡的,但反过来却不对。换句话说,二叉树最高深度和最低深度的值相差不超过1 是 二叉平衡树 的 充分 而非 必要 条件
也就是说那个解法偷换成了更强的要求(虽然解法更简单),但这样的树只是平衡树的一个真子集。
请大家自行构造一棵最大深度和最小深度的值超过1的二叉平衡树,加深对二叉平衡树概念的理解。
l*********8
发帖数: 4642
44
来自主题: JobHunting版 - 来二题
逐个扫描数组元素,依次插入下面这样的二叉树
struct BinaryTreeNode {
int subNodeCount;
int val;
BinaryTreeNode * left;
BinaryTreeNode * right;
};
在插入元素x[i]的同时,也容易求得二叉树中比x[i]小的元素的数目k[i], 也就是比x[
i]小,并且位于x[i]之前的元素个数.
swap总数就是: sum(x[i] - k[i]), i from 0 to n-1
每次插入二叉树, O(logn)
n个元素, 总共 O(n*logn)
c*****e
发帖数: 3226
45
把这个题的答案帖一下吧。

句话说,二叉树最高深度和最低深度的值相差不超过1 是 二叉平衡树 的 充分 而非
必要 条件
的一个真子集。
树概念的理解。
O******i
发帖数: 269
46
你那个是Crackcode第四版或者更早版本中的定义,是错的,是充分而非必要条件。按
照那样太过于严格的定义,会把一些是平衡树的也判定为不是平衡树,造成false
negative。
在第五版中改正过来了。
r*****e
发帖数: 146
47
二叉查找树中两个节点被错误的交换了,如何有效找出他们。有没有比较neat的解法?
谢谢
h****n
发帖数: 1093
48
inorder travese即可找第一个不对路和最后一个不对路的交换即可

二叉查找树中两个节点被错误的交换了,如何有效找出他们。有没有比较neat的解法?
谢谢
★ Sent from iPhone App: iReader Mitbbs Lite 7.56
d********w
发帖数: 363
49
来自主题: JobHunting版 - [Algo] 检查一个树是另一个的子树
bool isSubTree(Tree* large, Tree * small);
假设就是二叉树吧,想到一个思路,把两个树按先序和中序打印出来,然后查看是否是
substr,能证明这样是对么?或者还有什么其他思路?感觉树的查找是个挺难的问题,
之前我在工作中就遇到过在一个domtree中,如何比较树的相似度,
就是比如把网页按dom解析,形成一个树,判断两个网页的duplicate,可以转化成求这
两个树的相似度,这又有2个问题,如何做树的查找,如何计算相似。不知大家有没有
做过这方面研究的
它的一个简化版本就是这题
i**********e
发帖数: 1145
50
Print Edge Nodes (Boundary) of a Binary Tree
问题是要把树的周围counter-clockwise打印出来。先打印root,然后从上到下打印最
左边的节点,然后从左到右的顺序打印叶子节点,然后从下到上打印最右边的节点。这
题的精粹就在于使用depth-first traversal,一个递归就能搞定。先把树分为两个树
(root的左孩子和右孩子)处理。先处理左树,再处理右树。如果卡在怎么从下到上打
印最右边节点,可以想想post-order traversal。
一些常见面试题的答案与总结 -
http://www.ihas1337code.com
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)