算法设计中堆中兄弟节点大小无序,为什么?
4个回答
展开全部
记节点为X,其父节点为Parent(X)。
小顶堆要求满足Parent(X)<=X。
大顶堆要求满足X<=Parent(X)。
在父节点和节点之间满足上述关系,就叫做堆序。
因为堆一般是用来实现优先队列,优先队列只需要取得优先级最大
或者优先级最小的元素。当堆中的任意元素满足上述的堆序时,就可以
保证在堆的顶部取得优先级最大或者最小的元素。而不要关心兄弟节点
之间的关系。即用了较少的约束条件就可以实现优先队列。
既然只需要考虑节点和其父节点之间的关系就可以在堆顶取得想要的
元素,为何还要加上多余的约束条件。
小顶堆要求满足Parent(X)<=X。
大顶堆要求满足X<=Parent(X)。
在父节点和节点之间满足上述关系,就叫做堆序。
因为堆一般是用来实现优先队列,优先队列只需要取得优先级最大
或者优先级最小的元素。当堆中的任意元素满足上述的堆序时,就可以
保证在堆的顶部取得优先级最大或者最小的元素。而不要关心兄弟节点
之间的关系。即用了较少的约束条件就可以实现优先队列。
既然只需要考虑节点和其父节点之间的关系就可以在堆顶取得想要的
元素,为何还要加上多余的约束条件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为他们只是和他们的父节点比啊,并没有相互比较,所以兄弟是无序的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
堆的作用只是保证堆结构中每棵子树根节点为最大(或最小),兄弟间没有必要比较大小。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以设计成有序的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询