堆的代码实现文.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
// 方法一 // 建立最小值堆 // 此方法类似于 课本中的 Dijkstra 算法 // 首先 要建立两个结构 一个要储存所给的点的信息 另外一个纪录边的信息 // 然后建立一个最小值堆 #includeiostream.h // 建立纪录当前点的信息 的结构 struct Point { int tag; // 纪录点的下标 char colour; // 纪录点的颜色 int ric; // 纪录当前颜色还能够持续的时间 int tib; // 纪录每次 Blue 颜色所持续的时间 int tip; // 纪录每次 Purple 颜色所持续的时间 int isvisit; // 纪录当前节点是否已经被走过了 int time; // 纪录当前结点的时间 }point[300]; // 申请一个 300 大小的数组用来储存结点 // 建立记录当前路径信息 的结构 struct Road { int time; // 纪录要经过当前路径的时间 int index; // 路径索引 }; // 建立一个 Road 类型的最小值堆 templateclass Road class Heap { public: Road * heap; // 存放对数据的数组 int currentSize; // 纪录当前对中元素的个数 int maxSize; // 堆所能够容纳的最大的元素数目 void Insert(Road newNode); // 向堆中插入元素 newNode Road RemoveMin(); // 从堆顶删除一个最小的元素 void ShiftUp(int position); // 从 position 向上开始调整,使序列成为一个堆 void ShiftDown(int left); // 筛选法函数 参数 left 开始处理下标 void swap(int pos_x,int pos_y); // 交换函数 Heap(const int n); // 构造函数 virtual ~Heap(){delete []heap;} // 析构函数 }; // 构造函数 templateclass Road HeapRoad::Heap(const int n) { // 设置当前 堆中的情况 currentSize=0; maxSize=n; // 动态申请数组 创建堆空间 heap=new Road [n]; } // 插入函数 templateclass Road void HeapRoad::Insert(Road newNode) { // 把 newNode 插入到堆的最后 heap[currentSize]=newNode; // 从最下面开始向上调整 ShiftUp(currentSize); // 堆的当前大小 加一 currentSize++; } // 调整堆的函数 templateclass Road void HeapRoad::ShiftUp(int position) { // 首先对要调整的对象进行记录 // 从 position 开始向上调整 使得堆有序 int temppos=position; Road temp=heap[temppos]; while(temppos0) { // 得到其父节点的下标 int n=(temppos-1)/2;

文档评论(0)

蔡老二学教育 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档