“堆肯定是一棵平衡二叉树”请问这句话对吗?

傻瓜学者 2009-10-31 02:26:49
如题。
在下问了很多人了,始终没有一个肯定的回答。
在这里请教各位,谢谢。
...全文
3576 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaomingdong 2009-11-27
  • 打赏
  • 举报
回复
昏死,胡说八道,平衡树不是排序树,上面的弄清楚了再来说吧。
傻瓜学者 2009-11-05
  • 打赏
  • 举报
回复
谢谢大家了。
无论大家提出自己的哪种意见,都有分。
PeacefulBY 2009-11-04
  • 打赏
  • 举报
回复 2
堆、树、图、栈和队列等是抽象概念,数组、指针是实现方法,不能因为实现方法的不同而否定抽象概念,因此我认为1楼的观点是错误的,用数组或用指针实现的堆都是树。
其次,堆是这样的树结构:父子关系满足偏序关系(例如大于、小于),并且在堆的建立和维护过程中都是完全二叉树;而平衡二叉树则只需满足以下条件:对于任意子树,其左右子树的深度差小于等于1,平衡二叉树与是否是排序树(查找树)无关,只不过在排序树的建立于维护过程中用得很多(例如AVL树)。
因此,由于始终作为完全二叉树,故堆是平衡二叉树,需要掌握的也就是这点,其他抠字眼的理解就没意思了。
ma3587 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hairetz 的回复:]
堆连排序树都不是。
[/Quote]
有道理
  • 打赏
  • 举报
回复
堆连排序树都不是。
zdeepblue 2009-11-04
  • 打赏
  • 举报
回复
个人觉得还是英语的名词比较清晰,呵呵。
看CS的书还是英语的好
zdeepblue 2009-11-04
  • 打赏
  • 举报
回复
堆是一棵complete binary tree,但不是binary search tree
所以不是balanced BST。
wshcdr 2009-11-04
  • 打赏
  • 举报
回复
堆当然是平衡二叉树
laiguo 2009-11-03
  • 打赏
  • 举报
回复
应该是对的吧,可是我答这题时答错了。
后来看书上堆的定义,非终端结点的值均不大于其左右孩子结点的值。
所以我看来句话是对的
傻瓜学者 2009-11-03
  • 打赏
  • 举报
回复
还有,1楼朋友的说法我确实是第一次听说,很有建设性。可也许出题老师都没想这么多吧。
我特意就你的话在网上找了一下,着实没有查到其它表示堆的方法,可能是不太常用吧。
傻瓜学者 2009-11-03
  • 打赏
  • 举报
回复
这道题的答案是“错”的。(同时不排除答案印错的可能)

这道题我一直认同2楼朋友的观点。
可是我在某一个网站上讨论该问题,有很多人提出这种意见——而且非常肯定:“平衡二叉树必是二叉排序树”。如果这个命题正确,那么这道题就“错”了。

所以这个帖子再最后地顶一下!
sxq310 2009-10-31
  • 打赏
  • 举报
回复
一楼说的有道理,但堆如果用完全二叉树来实现那么其肯定是平衡二叉树。
adfas 2009-10-31
  • 打赏
  • 举报
回复
显然不对。
堆得实现方式太多了。最普遍的是用完全二叉树实现的二叉堆

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧