景和清晰的逻辑思维同时对抽象现实问题的能力提出很高的要求。面对日益增加的数据处理规模,常规的数据结构和算法无法满足运行时间的要求。因此精心设计的数据结构和实现算法成为解决问题的利器。从计算机科学诞生伊始,数据结构和算法设计也随之产生,代代的计算机科学家,工程师为了解决问题提出了许许多多的精巧的数据结构和算法设计。堆作为种应用广泛的数据结构,得到许多人研究。人们不停的在探索这种抽象数据结构更好的实现算法。本文在认真学习二项堆与斐波那契堆的数据结构,数学性质和实现算法的基础上给出了具体的代码实现并且对效率进行了分析。用,例如最短路算法的快速实现,最优编码的哈夫曼树实现,优先级调度算法等等。.堆的分类从物理的角度来讲,堆的节点在内存中可以连续分布也可以分散分布,前者是二叉堆,后者是二项堆和斐波纳契堆。二叉堆的实现相对简单,运行时间的常数因子也小,但是同时也存在些不足之处。由于二叉堆要求连续的存储空间,因此对于增量数据即我们无法事先预知数据总的规模的情况下,我们无法确定应该分配的内存大小。通常这种情况下我们倾向于分配个较大的内存,但是极有可能造成内存的浪费,同时当数据规模超过分配的内存时还要重新分配内存,其中就要涉及较大的数据复制操作,这对运行效率是极其不利的。另外种情况下及时我们事先知道数据规模的大小,但是由于内存有限无法分配出足够大连续的内存空间。由于这两个原因使得二叉堆的应用得到限制,许多人开始探索离散空间上实现堆的方法。二项堆和斐波纳契堆是离散空间上堆的实现,克服了二叉堆要求分配连续内存的缺点同时维持了相关操作的高效性。在渐近时间复杂度上二项堆和二叉堆的时间复杂度是相同的。斐波纳契堆由于采用了循环双向链表的数据结构使得结束。那么为什么偶数个的时候要递归往上删除因为度数为的二项树在层共有,个结点。如果不进行级联剪枝操作的话,我们可以发现删除几个节点后树的形状就会显得十分凌乱毫无章法。但是如果进行了级联剪枝,在偶数个结点时进行级联剪切时,原来是减少两个结点关键字后,变为由于二项式是对称的,因此通过级联减枝的技术可以保证类使二项式减少个数量级,维持二项树的形状删除个结点删除操作的过程比较简单,首先减小对应节点的关键字值直到.所指向节点的关键字值小,此时对应节点成为.,然后调用弹出操作函数即可。伪代码如下,第章实现细节.二项堆代码结构二项堆涉及到的数据结构主要包括和,具体定义如下主要涉及到的函数如下,此函数分配个结构体指针并且初始化然后返回对应的结构体指针。,此函数接受两个结构体指针作为参数,将对应的两棵二项树合并并且返回结果树的根节点指针。,此函数接受两个结构体指针作为参数,将对应的两个二项堆的主链按序合并,并将结果主链的头部指针返回。,此函数接受两个结构体指针作为参数,内部调用合并主链,然后对主链上相同度数的节点进行进步合并。,此函数改变个节点的关键字值,并且通过递归的父节点比较关键字值来维持堆的有序结构。,此函数返回二项堆的节点数目。,此函数返回个布尔值来判定对应的二项堆是否为空。,此函数删除个给定的节点,通过进步的操作来保证二项堆的数学性质和结构。,这些函数对堆的基本操作进行封装,提供抽象的接口。,二项堆的测试函数,不包括效率测试,主要是对接口函数的测试。.斐波纳契堆代码结构斐波那契堆涉及到的数据结构主要包括和,具体定义如下项堆解决了离散空间上面堆的实现问题,与二叉堆有相同的渐近时间复杂度。斐波纳契堆在不涉及删除操作的情况下有的均摊时间复杂度,无疑是对效率的极大提升。但是相对而言斐波纳契堆有着复杂的数据结构和算法是其主要的不足。如果能够开发种堆的算法,既有比较简单的数据结构有能高效支持对应的操作是再好不过的事情了。而这也是我们要努力的目标。致谢首先,我要诚挚地感谢我的导师陈欢老师!本论文是在陈欢老师的悉心指导下完成的,从论文的构思准备编写到最后的定稿,都得到了陈欢老师的大力支持和热心指导。在论文的编写过程中,陈欢老师提出了许多的宝贵意见和建议,使我得到了很大的启发。在此,我要向陈欢老师致以衷心的感谢!同时我也要感谢我的些同学和朋友,他们在我做毕设的过程之中给我许多帮助,同他们讨论问题使我受益匪浅。最后,感谢各位评审老师在百忙之中抽出宝贵的时间对本论文进行审阅和参加答辩。在此,对各位参加审阅和答辩的老师表示感谢!参考文献.,算法导论第二版,机械工业出版社。编程珠玑第三版,人民邮电出版社。第二版机械工业出版社。严蔚敏吴伟民数据结构清华大学出版社。数据结构,算法与应用机械工业出版社。主要涉及到的函数如下,此函数在内存中分配个的结构体并且初始化,函数返回对应结构体的指针。,此函数接受两个结构体指针,将两个无序的二项树合并,并且返回对应结果树的根节点。,此函数改变个节点的关键值,同时经过级联剪切的操作的维护斐波那契堆的数学性质和结构。,此函数接受两个结构体指针,将对应的斐波纳契堆合并,返回合并后的堆的根节点。,此函数接受个结构体指针,通过遍历根链得到根链长度的最大度数,通过这些计算要用到的临时数组的大小。,此函数实现级联剪切的操作。实现对斐波那契堆的基本操作进行封装,提供抽象的接口。,斐波纳契堆的测试函数,不包括性能测试,主要是对,和操作进行测试。.其他函数代码还涉及到的其他函数比较函数实现的操作。在二项堆中为,在斐波纳契堆为。遍历函数用于对根链进行遍历,同时格式化输出根链上的节点的关键字值和度数。在二项堆中为,在斐波那契堆中为。报错函数通过的重定位,将内存不足的情况写入的缓冲区,同时进行操作。在代码中为。性能测试函数通过对个随机数进行和操作,计算出两种操作所耗费的挂钟时间。重复这个这个操作多遍,取平均值。在代码中实现为。第章性能测试我们对二项堆和斐波那契堆的和操作进行测试。我们先利用函数生成大量的随机数,然后对数据进行和操作,并且利用函数来测试相应操作的挂钟时间,并将结果用去除得到最后的时间。重复这样的测试多次取平均值。在具体代码中对应的测试函数为。它有个参数,分别是即实验重复次数,即表明是对二项堆还是对斐波那契堆进行测试,或者以比较模式进行测试。全局变量为测试数据规模。通过对个数据进行测试的实验,我们得到下列结果。上面的数据对于的是对二项堆,斐波纳契堆和在比较模式下通过对数据进行次重复测试的结果。其中代表操作耗费的挂钟时间,代表操作耗费了几秒代表操作耗费了几秒,代表次实验总共耗费的时间。总结与展望数据结构和算法设计是门创造性的学问,需要良好的数学背维修,根据目前的特点,中高档轿车维修市
场将是其主要的目标市场。
店定位
客车占汽车总产量的胁。
市场竞争加剧,竞争对手多元化。
产品质量和技术含量提高,维修设备投资成本增大。
客户对企业的忠诚度下降。
公共交通汽车修理厂的定位
汽车修理厂汽车产品结构发生了很大变化,形成了涵盖轿车,
货车和客车等多品种,多车型的比较齐全的汽车产品体系.特别是轿车
发展迅猛,产量已经占汽车总产量的.,货车占汽车总产量的.,.但是,我国汽车产业的自主技术开发不足,
整车和零部件企业之间要加强合作,形成紧密的技术联盟.
年,我国汽车整车产量是.万辆,销售汽车.万辆.分别
增长.和满足汽车修理厂对于员
工的需求。
第二章市场分析
.我国汽车业发展现状
目前,我国汽车产品形成了涵盖轿车,货车和客车等多品种,多车型
的比较齐全的汽车产品体系城市给水管市公交运输汽车装饰租赁清洗修理广告汽
车贸易以及与之相匹配的相关产业。
该厂现有职工人,其中,中高级技术人员人,厂内设
个修理车间,个烤漆房,个汽配经营部,配备了汽车检测诊断设备
和事故应急施救车辆及其专用设备。该厂坚持以“内抓管理,外拓市场”
核准通过,归档资料。
未经允许,请勿外传!的经营理念,深化改革,致力于探索各类中高档车辆的维修技术,深
得保险公司和广大客户的信赖。
在上级领导的直接指导下,该厂通过。本项目地理位置详见附图地理位
置图。
场地现状
拟建的综合性。
第三章厂址选择
厂址现状
场地位置
本项目位于市小区琼库勒路西南侧迎宾路西北侧,项目北侧为无利用地及规划路与新车销售前期阶段的车辆维修。主要优势来源于厂家
的保修和提供免费保养,但其价格偏高,而快修店则定位于维修的便
利性和专业性,其地理位置优