- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课 程 实 验 报 告
课程名称: 数据结构(C语言版)
专业班级: 计算机1002班
学 号: U201014285
姓 名: 邹若兰
指导教师: 周时阳
报告日期: 2012/5/4
计算机科学与技术学院
目 录
TOC \o 1-3 \h \z \u 1 课程实验概述 1
2 实验一 基于顺序结构的线性表实现 2
2.1 问题描述 2
2.2 系统设计 2
2.3 系统实现 5
2.4 效率分析 7
3 实验二 基于链式结构的线性表实现 8
3.1 问题描述 8
3.2 系统设计 8
3.3 系统实现 11
3.4 效率分析 14
4 实验三 基于二叉链表的二叉树实现 15
4.1 问题描述 15
4.2 系统设计 15
4.3 系统实现 20
4.4 效率分析 24
5 实验总结与评价 24
1 课程实验概述
本课程实验为数据结构试验,包括三个实验内容,实验目的在于:
1.加深对数据结构和算法的理解,进一步提高学生编程能力;
2.培养和提高学生分析问题与解决问题的综合能力;
3.整理资料,撰写规范的实验报告。2 实验一 基于顺序结构的线性表实现
2.1 问题描述
基于顺序存储结构,实现线性表的基本的、常见的运算。
实验要求:
⑴ 提供一个实现功能的演示系统
⑵ 具体物理结构和数据元素类型自行选定
⑶ 线性表数据可以使用磁盘文件永久保存
2.2 系统设计
本系统提供两个基于顺序存储结构的线性表,模拟应用背景为:学生信息表和教师信息表,数据元素的数据项为:姓名、学号(或教师编号)、性别、年龄。
该演示系统提供的操作有:表的初始化、销毁、置空、判空,求表长、获取数据元素、查找数据元素、获得前驱、获得后继、插入数据元素、删除数据元素、表的遍历;此外还有表的创建、加载、保存操作选项,并提供已保存的数据表文件,便于演示操作。
应用程序构架:主要包含主程序、菜单函数、菜单选项处理函数。
在主程序中实现分支循环控制,主要部分是:调用菜单函数显示菜单;询问并接受用户的菜单选项进行消息的接受处理;对选择消息判断后通过分支转至相应处理部分,在处理部分实现功能调用前的准备工作(如继续对用户处理要求进行询问)、功能函数的调用、调用后的后续控制处理工作(询问用户要求);调用结束返回菜单选项,进行下一轮的处理。在菜单选项中提供退出系统的退出函数。
演示系统具体实现流程图如下:
开始
开始
输出与系统相关的说明文字
输出与系统相关的说明文字
是否加载已保存的信息表文件?
是否加载已保存的信息表文件?
N
N
Y
Y
加载学生及教师信息表
加载学生及教师信息表
1
1
1
1
调用清屏函数清屏
调用清屏函数清屏
调用菜单函数显示菜单选项
调用菜单函数显示菜单选项
询问并接受用户选择op(0-15)
询问并接受用户选择op(0-15)
op=1—15op=0
op=1—15
op=0
调用退出函数退出系统根据选择转至相应功能调用处理部分,实现有关线性表的操作
调用退出函数退出系统
根据选择转至相应功能调用处理部分,实现有关线性表的操作
结束
结束
说明:
其中“根据选择转至相应功能调用处理部分,实现线性表的基本操作”本应是包含十五个分支的分支结构分别指向不同的基本操作处理部分,限于篇幅不一一赘举。现文字描述如下:
十五个分支对应1—15个选项,分别为:表的加载、保存、表的初始化、表的创建、销毁、置空、判空、求表长、获取数据元素、查找数据元素、获得前驱、获得后继、插入数据元素、删除数据元素、表的遍历。对于每一个“功能调用”处理部分大致结构为:预处理、调用处理函数、后继处理。其中预处理包括询问是对学生还是教师信息表进行操作、或是为调用处理函数还需用户输入的相关信息,如插入操作调用插入函数前需询问插入位置并要求输入插入信息,等;后继处理包括输出功能函数调用后的相关结果或询问用户是否遍历输出表的信息以便检查是否操作正确成功(方便老师检查)。
线性表的顺序存储表示:
typedef struct {
ElemType *elem; 指针,指向顺序存放的一串数据元素
int length; 表长(实际数据元素个数)
int size; 表的大小(最多存贮数据元素个数)
}SqList;
相关函数的算法思想描述:
InitList(L) (创建表,此处是指
文档评论(0)