滴水逆向联盟

标题: VC++2012编程演练数据结构《26》最大堆二叉树 [打印本页]

作者: 大灰狼    时间: 2014-8-19 08:56
标题: VC++2012编程演练数据结构《26》最大堆二叉树
最大堆是二叉堆的两种形式之一。 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆,又称最大堆.

  注意: ①堆中任一子树亦是堆。 ②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆

最大堆和最小堆是二叉堆的两种形式。
  最大堆:根结点的键值是所有堆结点键值中最大者。
  最小堆:根结点的键值是所有堆结点键值中最小者。
  而最大-最小堆集结了最大堆和最小堆的优点,这也是其名字的由来。
  最大-最小堆是最大层和最小层交替出现的二叉树,即最大层结点的儿子属于最小层,最小层结点的儿子属于最大层。
  以最大(小)层结点为根结点的子树保有最大(小)堆性质:根结点的键值为该子树结点键值中最大(小)项。

打开IDE


我们创建一个工程


最大堆类声明如下

[cpp] view plaincopy






最大堆类实现如下

[cpp] view plaincopy






类调用如下

[cpp] view plaincopy






效果如下







欢迎光临 滴水逆向联盟 (http://dtdebug.com/) Powered by Discuz! X3.2