二叉搜索树

有一个二叉搜索
树用来存储字符'A', 'B', 'C','D','E','F','G','H'下面哪个结果是后序树遍历结果)[美国著名软件
公司M2009年11月笔试题]

A.ADBCEGFH
B.BCAGEHFD
C.BCAEFDHG
D.BDACEFHG
解析:二叉搜索树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二
叉树:对于树中的每个节点X,它的左子树中所有关键字的值都小于X的关键字值,而它的
右子树中的所有关键字值都大于X的关键字值。这意味着该树所有的元素都可以用某种统一
的方式排序。
例如下面就是一棵合法的二叉搜索树:

它的左、右子树也分别为二叉搜索树。
二叉搜索树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉搜索树的存储节
构。中序遍历二叉搜索树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二
叉搜索树变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。每次插入的新
的节点都是二叉搜索树上新的叶子节点,在进行插入操作时,不必移动其他节点,只需改动
某个节点的指针,由空变为非空即可。搜索、插入、删除的复杂度等于树高,即O(log(n))。
二叉树的一个重要的应用是它们在查找中的使用。二叉搜索树的概念相当容易理解,二
叉搜索树的性质决定了它在搜索方面有着非常出色的表现:要找到一棵树的最小节点,只需
要从根节点开始,只要有左儿子就向左进行,终止节点就是最小的节点。找最大的节点则是
往右进行。例如上面的例子中,最小的节点是1,在最左边;最大的节点是8,在最右边。
对于本题而言,二叉搜索树则必满足对树中任一非叶节点,其左子树都小于该节点值,
右子树所有节点值都大于该节点值。节合二叉树后序遍历的特点,最后一个肯定是根节点
A.ADBCEGFH
->(H)左子树(ADBCEGF),右子树(空) (左子树必须都小于根H,右子树都大于根H)
-->(F)左子树(ADBCE),右子树(G)
--->(E)左子树(ADBC),右子树(空)
---->(C)剩下(ADB)不能区别左子树,右子树,所以选项A不成立;
B.BCAGEHFD
->(D, (BCA), (GEHF))
-->GEHF, F为根,剩下GEH不能根据F分成两个子段,所以B不成立;
C.BCAEFDHG
->(G, (BCAEFD), (H))
-->(G, (D, (BCA), (EF)), (H))
--->(G, (D, (A, (), (BC)), (F, (E), ())), (H))
---->(G, (D, (A, (), (C, (B), ())), (F, (E), ())), (H))

选项C成立;
D.BDACEFHG
->(G, (BDACEF), (H))
-->(G, (F, (BDACE), ()), (H))
--->(G, (F, (E, (BDAC), ()), ()), (H))
---->BDAC子树,C为根,据C不能将序列BDA划分为两个子序列,使得左子序列全小于
C,右子序列全大于C
所以选项D不成立。
答案:C

转载于:https://www.cnblogs.com/yihujiu/p/6379179.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值