当前位置: 首页 > news >正文

大学学风建设专题网站青州网站

大学学风建设专题网站,青州网站,app推广员好做吗,p2p金融网站开发目录 堆的结构类型定义 最大堆的创建 堆的插入 堆的插入的三种情况 代码实现 哨兵元素 堆的结构类型定义 #define ElementType int typedef struct HNode* Heap; /* 堆的类型定义 */ struct HNode {ElementType* Data; /* 存储元素的数组 */int Size; /* 堆中…目录 堆的结构类型定义 最大堆的创建 堆的插入 堆的插入的三种情况 代码实现 哨兵元素 堆的结构类型定义 #define ElementType int typedef struct HNode* Heap; /* 堆的类型定义 */ struct HNode {ElementType* Data; /* 存储元素的数组 */int Size; /* 堆中当前元素个数 */int Capacity; /* 堆的最大容量 */ }; HNode中的两个成员变量 一个ElementType类型的指针Data用于存储堆中的元素 一个int类型的Size用于表示堆中当前的元素个数 还有一个int类型的Capacity用于表示堆的最大容量。 最大堆的创建 typedef Heap MaxHeap; /* 最大堆 */ typedef Heap MinHeap; /* 最小堆 */#define MAXDATA 1000 /* 该值应根据具体情况定义为大于堆中所有可能元素的值 */MaxHeap CreateHeap(int MaxSize) { /* 创建容量为MaxSize的空的最大堆 */MaxHeap H (MaxHeap)malloc(sizeof(struct HNode));H-Data (ElementType*)malloc((MaxSize 1) * sizeof(ElementType));H-Size 0;H-Capacity MaxSize;H-Data[0] MAXDATA; /* 定义哨兵为大于堆中所有可能元素的值*/return H; } 参数MaxSize表示创建的最大堆的最大容量。 首先使用malloc申请了HNode结构体类型的内存空间。 接下来使用malloc申请了(MaxSize1)个ElementType类型的元素的内存空间并将申请的指针赋值给H-Data这个Data数组就是用来存储最大堆中的元素的。 而其中要申请的内存空间不是MaxSize而是MaxSize1是因为 堆的下标是从1开始的而不是从0开始的。这样设计的原因是为了方便定位节点和父子节点之间的关系。 下标为0的元素我们定义为“哨兵”其值应该大于堆中所有可能元素的值哨兵的作用在后面会详细阐述。 堆的插入 堆的插入的三种情况 代码实现 bool Insert( MaxHeap H, ElementType X ) { /* 将元素X插入最大堆H其中H-Data[0]已经定义为哨兵 */int i;if ( IsFull(H) ) { printf(最大堆已满);return false;}i H-Size; /* i指向插入后堆中的最后一个元素的位置 */for ( ; H-Data[i/2] X; i/2 )H-Data[i] H-Data[i/2]; /* 上滤X */H-Data[i] X; /* 将X插入 */return true; }首先判断最大堆是否已满如果已满则返回false。 如果不满则将堆的大小加1i指向插入后堆中的最后一个元素的位置。 然后从i开始向上遍历如果父结点的值小于X则将父结点的值下移直到找到X的插入位置。 这其中有一个关键知识点 H-Data[0]是哨兵元素它不小于堆中的最大元素控制循环结束。 哨兵元素 假定没有哨兵元素或哨兵元素的值为0而最大堆中的第一个元素是里面的最大值。 那我们看个例子(关注数组下标i的变化) 插入操作的时间复杂度为  end  学习自MOOC——陈越、何钦铭
http://www.w-s-a.com/news/458000/

相关文章:

  • 流水线 东莞网站建设如何在网上销售产品
  • 哪些做图片赚钱的网站网站建设销售业绩任务
  • 建立网站 知乎如何做网站的图片滑动块
  • 国外做珠宝的网站有哪些滨湖区建设局官方网站
  • 关于中国幼教网站开发的经验中国建设银行晋中分行网站
  • 挪威网站后缀如何外贸网络推广
  • 外汇交易网站开发仟亿家设计软件好吗亿家
  • 专门教做甜品的网站郑州高新区建设环保局网站
  • 建站公司怎么获客网站建设全网营销
  • 黄石做网站的公司html免费网站模板
  • 做个商城网站怎么做便宜优酷视频网站源码
  • 网站侧边栏导航代码泰兴市住房和建设局网站
  • html网站登录界面模板确定建设电子商务网站目的
  • wordpress 多站点迁移三台网站seo
  • 工信部网站备案文件好网站建设公司地址
  • 怎么做app和网站购物网站单页面怎么做的
  • 西宁专业做网站教育网站建设策划书
  • 个人网站域名怎么起网站建设业务好跑吗
  • 网页设计的网网页设计的网站企业网站怎样做优化
  • 论文中小企业的网站建设域名网站空间
  • 宿迁网站建设联系电话现在出入邯郸最新规定
  • 男女做羞羞的事情网站30岁转行做网站编辑
  • 做企业网站的轻量级cmswordpress 越来越慢
  • 无锡中英文网站建设莱芜网络公司
  • ps软件下载官方网站相关搜索优化软件
  • 世界杯网站源码下载做网站推广代理
  • 用股票代码做网站的wordpress通过标签调用文章
  • iis添加网站ip地址树莓派运行wordpress
  • 网站空间域名多少钱宿迁做网站公司
  • 福州建设企业网站网站交互主要做什么的