《算法与数据结构---C语言描述》优先队列
所谓的优先队列,其实是一个二叉树,只是这个树比较特别,小数据的结点一定在大数据的结点之上,又称“小根堆”。
搞了几天,终于把优先队列搞定了,当然,也是这几天老是分神,QQ还是在白天设置成免打扰模式吧。
以下是代码
1 #ifndef PriorityLEAP_H 2 #define PriorityLEAP_H 3 4 template<class T> 5 class PriorityLeap 6 { 7 public: 8 PriorityLeap(T d){ 9 llink = NULL;10 rlink = NULL;11 plink = NULL;12 data = d;13 }14 15 void add_heap(T d)16 {17 //1.移到树叶,18 //2.向上移,直到要结点或者父结点比插入的节点大19 PriorityLeap* leaf = this;20 PriorityLeap* add = new PriorityLeap(data);21 add->data = d;22 while (leaf->llink != NULL )23 {24 leaf = leaf->llink;25 }26 leaf->llink = add;27 add->plink = leaf;28 int begin = false;29 while ( leaf != NULL && d < leaf->data ) 30 {31 leaf->llink->data = leaf->data; 32 33 if(leaf->plink ==NULL){34 leaf->data = d;35 begin = true;36 break;37 }38 leaf = leaf->plink;39 }40 if(!begin)41 leaf->llink->data = d;42 }43 T removeMini_heap()44 {45 T ret = data;46 47 PriorityLeap* temp = this;48 PriorityLeap* t = NULL;49 50 while (temp && (temp->llink != NULL || temp->rlink != NULL) )51 {52 t = temp;53 if ( temp->llink == NULL ){54 temp = temp->rlink;55 }56 else if ( temp->rlink == NULL ){57 temp = temp->llink;58 }59 else if ( temp->llink->data > temp->rlink->data){60 temp = temp->llink;61 }62 else{63 temp = temp->rlink;64 }65 66 t->data = temp->data;67 68 }69 70 return ret;71 }72 bool isEmpty()73 {74 if(llink==NULL && rlink == NULL){75 return true;76 }77 return false;78 }79 public:80 T data;81 PriorityLeap* llink;82 PriorityLeap* rlink;83 PriorityLeap* plink;84 };85 #endif
1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 char s_a = 'a'; 4 char s_b = 'b'; 5 char s_c = 'c'; 6 char s_d = 'd'; 7 char s_e = 'e'; 8 char s_f = 'f'; 9 10 PriorityLeap<char> leap(s_f);11 leap.add_heap(s_d);12 leap.add_heap(s_e);13 leap.add_heap(s_c);14 15 for (int i = 0; i < 4; i++)16 {17 printf("priorityleap %c\n",leap.removeMini_heap());18 }19 20 system("pause");21 return 0;22 }
转载于:https://www.cnblogs.com/fox7nights/archive/2011/12/02/2272595.html
《算法与数据结构---C语言描述》优先队列相关推荐
- 算法与数据结构java语言描述 英文版_CVPR2020 |室内设计师失业?针对语言描述的自动三维场景设计算法...
近日,计算机视觉顶会CVPR 2020接收论文结果公布,从6656篇有效投稿中录取了1470篇论文,录取率约为22%.在<Intelligent Home 3D: Automatic 3D-Ho ...
- 图十字链表并求度c语言,第5章_西安电子科技大学出版社:算法与数据结构-C语言描述(樊希平)_doc_大学课件预览_高等教育资讯网...
第5章 数组和广义表要点: 1.掌握数组元素存储位置的换算: 2.了解特殊矩阵地存储方法和元素存储位置计算: 3.了解广义表的长度.深度.head.tail等概念和操作和存储结构. 教材习题解答: 5 ...
- 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 优先级队列 — 左高树
<数据结构.算法与应用 -- C++语言描述>学习笔记 - 优先级队列 - 左高树 一.左高树 1.外部节点 2.高度优先左高树 (1)定义 (2)特性 (3)HBLT 与 大小根树 3. ...
- 数据结构、算法与应用c++语言描述(答案)
数据结构.算法与应用c++语言描述(答案) https://www.cise.ufl.edu/~sahni/dsaac/view.htm 本身不是计算机专业的,属于那种自学半路出家的,最近刚开始看 ...
- 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 回溯法
<数据结构.算法与应用 -- C++语言描述>学习笔记 - 回溯法 一.算法思想 二.货箱装载 1.问题描述 2.回溯算法 3.实现 4.测试代码 一.算法思想 回溯法是搜索问题解的一种系 ...
- 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 竞赛树
<数据结构.算法与应用 -- C++语言描述>学习笔记 - 竞赛树 一.赢者树 二.二叉树的数组描述(补充) 1.声明 2.实现 三.赢者树 1.抽象数据类型 2.赢者树的表示 3.声明 ...
- c语言用指针求Amn,[工学]第5章数据结构C语言描述耿国华.ppt
[工学]第5章数据结构C语言描述耿国华 j=1; for(k=1; k<=A.n; k++) for(i=1; i<=A.len; i++) if(A.data[i].col== ...
- 资料 | O‘Reilly精品图书系列:算法精解 C 语言描述 (简体中文)
下载地址:资料 | O'Reilly精品图书系列:算法精解 C 语言描述 (简体中文) 内容简介 · · · · · · 本书是数据结构和算法领域的经典之作,十余年来,畅销不衰! 全书共分为三部分:第 ...
- 最小生成树普里姆算法c语言代码,普里姆算法生成最小生成树-C语言描述.doc
PAGE JIN JINGCHU UNIVERSITY OF TECHNOLOGY <数据结构(C语言描述)> 课程设计 学 院 计算机工程学院 班 级 12级软件技术1班 学 号 201 ...
最新文章
- 学习笔记整理之对象的转型
- 基础JavaScript_Day04
- HystrixDashbord
- 外挂学习之路(3)--- 内存遍历工具
- java 解决故意弄得错误,高效的Java错误处理
- 在Spring MVC流中使用rx-java Observable
- 图论 —— 网络流 —— 最大流 —— Dinic 算法
- 用 X 光检测新冠肺炎?也许孪生网络+迁移学习是更好的选择!
- ExtAspNet应用技巧(十四) - 系统设置
- java遮罩层_页面遮罩层 - javaalex的个人空间 - OSCHINA - 中文开源技术交流社区
- [C#][控件]列表控件listbox(一)
- string---substr
- C#扩展名关联【转】
- Myeclipse修改代码提示框背景色
- matlab模拟信号受噪声干扰分析,如何用matlab编写噪声调频干扰信号
- VUE后台管理中使用富文本编辑器导入word 文档进行编辑
- 澳洲CE毕业意向FullStackDeveloper
- 计算机英语教学设计反思,英语教学设计与反思
- 搭建jpress个人博客
- 各种框架性能分析,和语言性能分析
热门文章
- easyui datagrid 不分页_快递物流管理系统(SSM,JQUERY-EASYUI,MYSQL)
- mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...
- python求平均值函数_Python两个练习题,写出私信有奖
- 开奖|八大福利,康康你中奖了没?
- 本周DOT将解锁302.47万枚,上周共质押919.9万枚
- TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下降3.29%
- 台积电:无法回应检调中的案件,不评论单一客户特定订单
- 智慧城市、智慧园区、智慧交通、行业经营看板、运行管理大屏、图表模板、公司经营看板、大屏可视化、BI可视化模板、智慧工厂、办公、能源、餐饮、校园、人力资源、行政、汽车、房地产、保险、医院、axure原型
- Online Judge系统常见返回信息分析
- CSS 浅析position:relative/absolute定位方式