1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
,此函数接受两个结构体指针,将对应的斐波纳契堆合并,返回合并后的堆的根节点。
,此函数接受个结构体指针,通过遍历根链得到根链长度的最大度数,通过这些计算要用到的临时数组的大小。
,此函数实现级联剪切的操作。
实现对斐波那契堆的基本操作进行封装,提供抽象的接口。
,斐波纳契堆的测试函数,不包括性能测试,主要是对,和操作进行测试。
其他函数代码还涉及到的其他函数比较函数实现的操作。
在二项堆中为,在斐波纳契堆为。
遍历函数用于对根链进行遍历,同时格式化输出根链上的节点的关键字值和度数。
在二项堆中为,在斐波那契堆中为。
报错函数通过的重定位,将内存不足的情况写入的缓冲区,同时进行操作。
在代码中为。
性能测试函数通过对个随机数进行和操作,计算出两种操作所耗费的挂钟时间。
重复这个这个操作多遍,取平均值。
在代码中实现为。
第章性能测试我们对二项堆和斐波那契堆的和操作进行测试。
我们先利用函数生成大量的随机数,然后对数据进行和操作,并且利用函数来测试相应操作的挂钟时间,并将结果用去除得到最后的时间。
重复这样的测试多次取平均值。
在具体代码中对应的测试函数为。
它有个参数,分别是即实验重复次数,即表明是对二项堆还是对斐波那契堆进行测试,或者以比较模式进行测试。
全局变量为测试数据规模。
通过对个数据进行测试的实验,我们得到下列结果。
上面的数据对于的是对二项堆,斐波纳契堆和在比较模式下通过对数据进行次重复测试的结果。
其中代表操作耗费的挂钟时间,代表操作耗费了几秒代表操作耗费了几秒,代表次实验总共耗费的时间。
总结与展望数据结构和算法设计是门创造性的学问,需要良好的数学背景和清晰的逻辑思维同时对抽象现实问题的能力提出很高的要求。
面对日益增加的数据处理规模,常规的数据结构和算法无法满足运行时间的要求。
因此精心设计的数据结构和实现算法成为解决问题的利器。
从计算机科学诞生伊始,数据结构和算法设计也随之产生,代代的计算机科学家,工程师为了解决问题提出了许许多多的精巧的数据结构和算法设计。
堆作为种应用广泛的数据结构,得到许多人研究。
人们不停的在探索这种抽象数据结构更好的实现算法。
本文在认真学习二项堆与斐波那契堆的数据结构,数学性质和实现算法的基础上给出了具体的代码实现并且对效率进行了分析。
用,例如最短路算法的快速实现,最优编码的哈夫曼树实现,优先级调度算法等等。
堆的分类从物理的角度来讲,堆的节点在内存中可以连续分布也可以分散分布,前者是二叉堆,后者是二项堆和斐波纳契堆。
二叉堆的实现相对简单,运行时间的常数因子也小,但是同时也存在些不足之处。
由于二叉堆要求连续的存储空间,因此对于增量数据即我们无法事先预知数据总的规模的情况下,我们无法确定应该分配的内存大小。
通常这种情况下我们倾向于分配个较大的内存,但是极有可能造成内存的浪费,同时当数据规模超过分配的内存时还要重新分配内存,其中就要涉及较大的数据复制操作,这对运行效率是极其不利的。
另外种情况下及时我们事先知道数据规模结束。
那么为什么偶数个的时候要递归往上删除因为度数为的二项树在层共有,个结点。
如果不进行级联剪枝操作的话,我们可以发现删除几个节点后树的形状就会显得十分凌乱毫无章法。
但是如果进行了级联剪枝,在偶数个结点时进行级联剪切时,原来是减少两个结点关键字后,变为由于二项式是对称的,因此通过级联减枝的技术可以保证类使二项式减少个数量级,维持二项树的形状删除个结点删除操作的过程比较简单,首先减小对应节点的关键字值直到所指向节点的关键字值小,此时对应节点成为,然后调用弹出操作函数即可。
伪代码如下,∞第章实现细节二项堆代码结构二项堆涉及到的数据结构主要包括和,具体定义如下主要涉及到的函数如下,此函数分配个结构体指针并且初始化然后返回对应的结构体指针。
,此函数接受两个结构体指针作为参数,将对应的两棵二项树合并并且返回结果树的根节点指针。
,此函数接受两个结构体指针作为参数,将对应的两个二项堆的主链按序合并,并将结果主链的头部指针返回。
,此函数接受两个结构体指针作为参数,内部调用合并主链,然后对主链上相同度数的节点进行进步合并。
,此函数改变个节点的关键字值,并且通过递归的父节点比较关键字值来维持堆的有序结构。
,此函数返回二项堆的节点数目。
,此函数返回个布尔值来判定对应的二项堆是否为空。
,此函数删除个给定的节点,通过进步的操作来保证二项堆的数学性质和结构。
,这些函数对堆的基本操作进行封装,提供抽象的接口。
,二项堆的测试函数,不包括效率测试,主要是对接口函数的测试。
斐波纳契堆代码结构斐波那契堆涉及到的数据结构主要包括和,具体定义如下项堆解决了离散空间上面堆的实现问题,与二叉堆有相同的渐近时间复杂度。
斐波纳契堆在不涉及删除操作的情况下有的均摊时间复杂度,无疑是对效率的极大提升。
但是相对而言斐波纳契堆有着复杂的数据结构和算法是其主要的不足。
如果能够开发种堆的算法,既有比较简单的数据结构有能高效支持对应的操作是再好不过的事情了。
而这也是我们要努力的目标。
致谢首先,我要诚挚地感谢我的导师陈欢老师,本论文是在陈欢老师的悉心指导下完成的,从论文的构思准备编写到最后的定稿,都得到了陈欢老师的大力支持和热心指导。
在论文的编写过程中,陈欢老师提出了许多的宝贵意见和建议,使我得到了很大的启发。
在此,我要向陈欢老师致以衷心的感谢,同时我也要感谢我的些同学和朋友,他们在我做毕设的过程之中给我许多帮助,同他们讨论问题使我受益匪浅。
最后,感谢各位评审老师在百忙之中抽出宝贵的时间对本论文进行审阅和参加答辩。
在此,对各位参加审阅和答辩的老师表示感谢,参考文献,算法导论第二版,机械工业出版社。
编程珠玑第三版,人民邮电出版社。
第二版机械工业出版社。
严蔚敏吴伟民数据结构清华大学出版社。
数据结构,算法与应用机械工业出版社。
主要涉及到的函数如下,此函数在内存中分配个的结构体并且初始化,函数返回对应结构体的指针。
,此函数接受两个结构体指针,将两个无序的二项树合并,并且返回对应结果树的根节点。
,此函数改变个节点的关键值,同时的大温泉河马场河浑河三大水系,较大河流共有条,河流总长公里,河域面积平方公里,年平均径流量为万立方米。
各河流径主要来自汛期降雨,全年径流量集中在月份,其它多数时间干枯,多属季节性河流。
全乡水资源总量为亿立方米,可开采量为亿立方米。
境内地下水资源丰富,水质较好,符合农田灌溉用水标准,农田灌溉用水以井灌为主,灌区自流灌服务体贴到位提高品味,吸引留住客商及消费者。
强化管理。
是要转变观念,统思想,正确认识农业旅游。
二是要合理规划,科学规范开发。
三是要精心设计农业旅游产品,突出特色。
四是要强化开发中安全卫生工作。
五是要搞好促销。
六是要培养农业技术和管理人才,旅游管理服务人才。
附羊群沟乡移民新村生态农业项目区建设现状图羊群沟乡移民新村生态农业项目区建设规划图和林格尔县长丰薯业农民专业合作社二二年月二马铃薯。
种植亩饲用玉米,供应养殖园区。
栽植园区建设。
建设亩保护地温室大棚反季节蔬菜种植园,长年四季提供新鲜蔬菜供应周边市场,丰富周边老百姓菜篮子,和日常所需生鲜蔬菜按国家规定无公害绿色食品生产标准生产合理搭配,并引进新品种新技术,四季生产四季销售,既体现观赏性,又体现食用性。
不仅可以让人们吃上绿色有机蔬菜,还可以在田拢和绿化带上增加新特优时令水果种植,规划修建田边,水渠道,排水系统等均匀种植,起到绿化和观染源污染土壤和空气厂家。
气候资源羊群沟乡地处内蒙古高原远离海洋深居内陆,属典型中温带大陆隆季风气候。
冬季漫长寒冷,夏季短促而炎热,春季干旱多风。
年气候温差和日气候温差较大,冷暧变化剧烈,光资源丰富,太阳辐射强烈,光热资源充足,蒸发量大,气候干燥,降雨少而集中三个月。
全年气候温和,年平均气温,基本上无明显严寒和酷暑,极端最低气温,极端最高气温,年平均降水量毫米,年最大降水量毫米,年最小降水量毫米,年平均蒸发量毫米。
年平均日照百分率为,平均相对湿度,年平均无霜期天,最大冻土层深度为米。
主导风向为西南风,平均风速米秒,最大风速米秒。
全乡大部分二大道以西,鹿影湖大道以东,四级航道以南,环港南路以北,总占地面积亩。
项目建设内容本项目建设内容主要包括土地整治道路建增加和经济发展,我国资源相对不足矛盾将日益突出。
必须坚持资源开发与企业转型发展并举,把转型发展放在首位。
生产建设流通消费等各个领域,都必须与企业转型和合理利用各种资源,煤炭科技十二五规划在煤炭工业策。
项目建设目及意义减少煤矿重大事故重大需要煤矿井巷或工作面周围煤岩体由于弹性变形能瞬时释放而产生突然剧烈破坏动力现象。
常伴有煤岩体抛出巨响及气浪等现象,具有很大破坏性,是煤矿重大灾害之。
在我国具有冲击现象地区分布广泛,并且随着开采深度加大,冲击地压危害将更加突出。
冲击地压防控在我国还将处于相对滞后状态,亟待攻关解决。
据年统计结果,在煤矿死亡事故中,事故起数和事故死亡数据第位是顶板事故,分新型加工材料生产起到进步推动作用。
第二章市场预测市场预测说明锚杆在围岩支护中被广泛应用,并发挥很大作用。
传统锚杆由于在使用中受到围岩错动压力影响易经过级联剪切的操作的维护斐波那契堆的数学性质和结构。
,此函数接受两个结构体指针,将对应的斐波纳契堆合并,返回合并后的堆的根节点。
,此函数接受个结构体指针,通过遍历根链得到根链长度的最大度数,通过这些计算要用到的临时数组的大小。
,此函数实现级联剪切的操作。
实现对斐波那契堆的基本操作进行封装,提供抽象的接口。
,斐波纳契堆的测试函数,不包括性能测试,主要是对,和操作进行测试。
其他函数代码还涉及到的其他函数比较函数实现的操作。
在二项堆中为,在斐波纳契堆为。
遍历函数用于对根链进行遍历,同时格式化输出根链上的节点的关键字值和度数。
在二项堆中为,在斐波那契堆中为。
报错函数通过的重定位,将内存不足的情况写入的缓冲区,同时进行操作。
在代码中为。
性能测试函数通过对个随机数进行和操作,计算出两种操作所耗费的挂钟时间。
重复这个这个操作多遍,取平均值。
在代码中实现为。
第章性能测试我们对二项堆和斐波那契堆的和操作进行测试。
我们先利用函数生成大量的随机数,然后对数据进行和操作,并且利用函数来测试相应操作的挂钟时间,并将结果用去除得到最后的时间。
重复这样的测试多次取平均值。
在具体代码中对应的测试函数为。
它有个参数,分别是即实验重复次数,即表明是对二项堆还是对斐波那契堆进行测试,或者以比较模式进行测试。
全局变量为测试数据规模。
通过对个数据进行测试的实验,我们得到下列结果。
上面的数据对于的是对二项堆,斐波纳契堆和在比较模式下通过对数据进行次重复测试的结果。
其中代表操作耗费的挂钟时间,代表操作耗费了几秒代表操作耗费了几秒,代表次实验总共耗费的时间。
总结与展望数据结构和算法设计是门创造性的学问,需要良好的数学背景和清晰的逻辑思维同时对抽象现实问题的能力提出很高的要求。
面对日益增加的数据处理规模,常规的数据结构和算法无法满足运行时间的要求。
因此精心设计的数据结构和实现算法成为解决问题的利器。
从计算机科学诞生伊始,数据结构和算法设计也随之产生,代代的计算机科学家,工程师为了解决问题提出了许许多多的精巧的数据结构和算法设计。
堆作为种应用广泛的数据结构,得到许多人研究。
人们不停的在探索这种抽象数据结构更好的实现算法。
本文在认真学习二项堆与斐波那契堆的数据结构,数学性质和实现算法的基础上给出了具体的代码实现并且对效率进行了分析。
用,例如最短路算法的快速实现,最优编码的哈夫曼树实现,优先级调度算法等等。
堆的分类从物理的角度来讲,堆的节点在内存中可以连续分布也可以分散分布,前者是二叉堆,后者是二项堆和斐波纳契堆。
二叉堆的实现相对简单,运行时间的常数因子也小,但是同时也存在些不足之处。
由于二叉堆要求连续的存储空间,因此对于增量数据即我们无法事先预知数据总的规模的情况下,我们无法确定应该分配的内存大小。
通常这种情况下我们倾向于分配个较大的内存,但是极有可能造成内存的浪费,同时当数据规模超过分配的内存时还要重新分配内存,其中就要涉及较大的数据复制操作,这对运行效率是极其不利的。
另外种情况下及时我们事先知道数据规模
