- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计实习报告
PAGE
PAGE 1
数据结构课程设计实习报告
班 级:地信11102班
学生姓名: 任亮
学 号: 201101252
长江大学
2013.7
目 录
TOC \o 1-3 \h \z \u 一、需求分析 1
二、逻辑设计 2
三、详细设计 5
四、程序编码 9
五、程序调试与测试 35
六、结果分析 39
需求分析:
1、程序一:单链表的应用
(1)要求生成线性表时,可以键盘上读取元素。通过在键盘上输入的数据构造成单链表,进而对构造成的单链表进行插入、删除、遍历等操作的实现。
(2)限制条件是要求在生成线性表的时候,线性表中的元素是从键盘上输入而不是自动生成,这样就可以对自己想要进行的元素序列进行各种操作。
2、程序二:二叉排序树的操作
(1)建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数。
(2)要求根据读取的元素建立二叉树,能输出各种遍历。
(3)可通过输入带空格的前序序列建立二叉链表。
附加功能:输出了二叉树的深度。
程序三:哈夫曼编码器(未严格依照要求)
从键盘接受一串电文字符,输出对应的Huffman编码。同时,能翻译由Huffman编码生成的代码串,输出对应的电文字符串。
程序四:停车场管理
设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
一、二叉树的基本操作逻辑设计:
一、二叉树的基本操作
主函
主
函
数
二、单链表的基本操作
二、单链表的基本操作
三、哈夫曼编码器
三、哈夫曼编码器
四、停车场管理
四、停车场管理
图一、主函数总体设计
1、功能一
链表主函数
链表主函数
头插法建立单链表尾插法建立单链表
头插法建立单链表
尾插法建立单链表
链表元素的删除单链表操作链表元素的插入
链表元素的删除
单链表操作
链表元素的插入
输出链表取单链表结点求单链表长度
输出链表
取单链表结点
求单链表长度
图二、单链表的基本操作
2、功能二
求二叉树的叶子节点数求二叉树的深度
求二叉树的叶子节点数
求二叉树的深度
二叉树操作
二叉树操作
后序遍历先序遍历中序遍历
后序遍历
先序遍历
中序遍历
图三、二叉树的基本操作
3、功能三
哈夫曼编码器
哈夫曼编码器
编码译码建立哈夫曼树
编码
译码
建立哈夫曼树
图四、哈夫曼树的基本操作
4、功能四
停车场管理系统
停车场管理系统
车辆离开车辆进入列表显示
车辆离开
车辆进入
列表显示
记录信息打印发票返回上层车在车场车在车道
记录信息
打印发票
返回上层
车在车场
车在车道
图五、停车场管理系统
详细设计:
1、单链表的操作(流程图)
图六、单链表插入 图七、单链表的删除
2、二叉树的基本操作(流程图)
图八、二叉树的前序遍历 图九、二叉树的中序遍历
图十、二叉树的后序遍历
哈夫曼树的详细设计
、构造哈夫曼树。
根据Huffman算法:若已知有n个叶子节点,则构造的huffman树有2n-1个结点。
先输入字符集中的n个字符(叶子节点)和表示其概率分布的权值,存储在HuffNode型数组的前n个数组元素中。然后将2n-1个结点的双亲和左右孩子均置为0。
在所有的节点中,选取双亲为0,且具有最小权值m1和次小权值m2的两个结点,用p1和p2指示这两个结点在数组中的位置。将根为ht[p1]和ht[p2]的两颗树合并,使其成为新节点ht[i]的左右孩子,ht[i]的权值为最小权值m1和次小权值m2之和;ht[p1]和ht[p2]的双亲指向i。重复上述过程,共进行n-1次合并就构造了一颗Huffman树。当进行n-1次合并时,产生n-1个结点,依次放在ht数组中,数组的下标从n到2n-2。
、编码。
基本思想:从Huffman树的叶子节点ht[i]出发,通过双亲parent找到其双亲ht[f],通过ht[f]的left和right域,可知ht[i]是ht[f]的左分支还是右分支,若是左分支,生成代码0;若是右分支,生成代码1,代码存放在数组cd[start]中,然后把ht[f]作为出发点,重复上述
您可能关注的文档
最近下载
- 精神 信仰 力量 情感动——走进新时代课件 - 2024—2025学年湘艺版(2024)初中音乐七年级上册.pptx VIP
- 水务招聘考试真题及答案.doc VIP
- 油气作业安全操作.pptx VIP
- 煤矿防突细则培训课件.pptx VIP
- 风电机组电气元件讲解(原版).ppt VIP
- 2023年秋江苏开放大学大学英语(B)(2)过程性考核作业3(无作文).pdf VIP
- 《给动画添加背景》优教课件.ppt VIP
- 2024沪教版初中英语单词表汇总(七~九年级)中考复习必背 .pdf VIP
- 最新2024版《法典中华人民共和国职业规范大典》 .pdf VIP
- 人工智能设计伦理智慧树知到答案2024年浙江大学.docx VIP
文档评论(0)