数据结构实验指导书
更新时间:2023-10-16 05:10:01 阅读量: 综合文库 文档下载
数据结构实验指导书
适用所有数据结构实验独立设课的专业
雷 文 梁金明 编写
概 述
一、课程目的
《数据结构》是一门实践性很强的软件基础课程,为了学好这门课,每个学生必须完成一定数量的上机作业。通过本课程的上机作业,要求在数据结构的选择和应用、算法的设计及实现等方面加深对课程基础内容的理解,同时,实验题中的问题比平时的练习题要复杂,也更接近实际,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
本课程实验的目的是旨在使学生进一步巩固课堂上所学的理论知识;深化理解和灵活掌握教学内容;培养学生算法设计的能力和解决实际问题的程序设计的能力。
二、实验名称与学时分配
序号 1 2 3 4 5 6 链表应用 利用栈实现递归 链队列应用 二叉树遍历 图的遍历 实 验 名 称 线性表顺序存储结构 学时数 2 2 2 2 4 4 实验类型 验证 验证 验证 验证 综合 综合 三、实验要求
⒈ 问题分析
充分地分析和理解问题本身,弄清要求做什么,包括功能要求、性能要求、设计要求和约束以及基本数据特性,数据间的联系等。
⒉ 数据结构设计 针对要求解决的问题,考虑各种可能的数据结构,并且力求从中出最佳方案(必须连同算法一起考虑),确定主要的数据结构及全程变量。对引入的每种数据结构和全程变量要详细说明其功能、初值和操作特点。
⒊ 算法设计
算法设计分概要设计和详细设计,概要设计着重解决程序的模块设计问题,这包括考虑如何把被开发的问题程序自顶向下分解成若干顺序模块,并决定模块的接口,即模块间的相互关系以及模块之间的信息交换问题.详细设计则要决定每个模块内部的具体算法,包括输入、处理和输出,采用类C语言描述。
⒋ 测试用例设计
准备典型测试数据和测试方案,测试数据要有代表性、敏感性,测试方案包括模块测试和模块集成测试。
⒌ 上机调试
对程序进行编译,纠正程序中可能出现的语法错误,测试前,先运行一遍程序看看究竟将会发生什么,如果错误较多,则根据事先设计的测试方案并结合现场情况进行错误跟踪,包括打印执行路径或输出中间变量值等手段。
1
三、实验考核
每次实验结束后,均应上交实验报告。数据结构课程实验成绩单独考核,占1个学分。 实验报告应包括如下内容:
1、问题描述:简述题目要解决的问题是什么。
2、设计:包括存储结构设计、主要算法设计等。用类C语言或用框图描述。
3、调试报告:调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。 4、算法分析与改进:算法的时间复杂度和空间复杂度分析;算法改进的设想。 5、经验和体会
附源程序清单和运行结果。 源程序要加注释。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含有其它测试数据和运行输出(有时需要多组数据)。
四、实验时间
16学时。
2
实验一 线性表顺序存储结构
一、 实验目的
1、 掌握使用Turbo C2.0/C++/VC环境上机调试线性表的基本方法;
2、 掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构上的运算。
二、 实验要求
1、 认真阅读和掌握本实验的程序。 2、 上机运行本程序。
3、 保存和打印出程序的运行结果,并结合程序进行分析。
4、 按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
三、 注意事项:
在磁盘上创建一个目录,专门用于存储数据结构实验的程序。
四、 实验内容
实验题目1:线性表基本操作的实现
这个程序中演示了顺序表的创建、插入、删除和查找,请修改并完成。 程序如下(Turbo2.0环境下程序示例): #include
{ int data[ListSize]; /*向量data用于存放表结点*/
int length;
/*当前的表长度*/
}SeqList; void main()
{ void CreateList(SeqList *L,int n); void PrintList(SeqList *L,int n); int LocateList(SeqList *L,int x); void InsertList(SeqList *L,int x,int i); void DeleteList(SeqList *L,int i); SeqList L; int i,x; int n=10; /*THE LENGTH OF LIST*/ L.length=0; clrscr(); CreateList(&L,n); /*CREAT THE LIST*/ PrintList(&L,n); /*PRINT THE LIST*/ printf(\ scanf(\
3
i=LocateList(&L,x);
printf(\ printf(\ scanf(\ printf(\ scanf(\ InsertList(&L,x,i); /*顺序表插入*/ PrintList(&L,n); /*打印顺序表*/ printf(\ scanf(\ DeleteList(&L,i); /*顺序表删除*/ PrintList(&L,n); getch();/*打印顺序表*/ }
/*顺序表的建立:*/
void CreateList(SeqList *L,int n) {int i;
printf(\for(i=1;i<=n;i++)
{scanf(\}
L->length=n; }
/*顺序表的打印:*/
void PrintList(SeqList *L,int n) {int i;
printf(\for(i=1;i<=n;i++)
printf(\}
/*顺序表的查找:*/
int LocateList(SeqList *L,int x) {int i;
for(i=1;i<=10;i++)
if((L->data[i])==x) return(i); else return(0); }
/*顺序表的插入:*/
void InsertList(SeqList *L,int x,int i) {int j;
for(j=L->length;j>=i;j--) L->data[j+1]=L->data[j]; L->data[i]=x; L->length++;
4
/*顺序表查找*/
正在阅读:
数据结构实验指导书10-16
广州地铁建设工程计量支付与变更管理办法03-11
电子商务试题09-21
家乡的石榴作文600字06-24
《数据库系统概论》第四版 - 王珊 - 萨师煊主编 - 课后习题答案03-30
加强规范管理 扎实开展课题研究09-21
歪尾巴的小金鱼作文500字07-08
18秋学期(1709、1803、1809)《旅游初级英语(一)》在线03-08
校园的秋天作文500字03-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 数据结构
- 实验
- 佛山艾科电子中央空调计费系统设计方案模板 - 图文
- 课改领导小组
- 厦门理工14年期末计算机网络期末复习总结
- 普通昆虫学习题集(附答案)
- 防雷电、防洪水、防泥石流、防溺水安全知识
- 用于银行贷款2013年现代粮食物流园建设 - 项目可行性研究报告(甲级资质+专家答疑)编制方案 - 图文
- 200、160及100吨汽车吊车性能表
- 什么是TVOC污染气体
- 电阻点焊方法和工艺
- 9001-2015标准培训考题
- 校企合作人才培养模式实践研究开题报告定稿
- 17秋东财《利息理论X》在线作业3参考资料
- 2017届虹口区高二地理二模试卷及答案 - 图文
- 某地铁工程车站围护结构施工方案
- 乡镇综治维稳工作中心规范化建设实施意见
- 留学费用、安全、就业、误区
- 《气象学与气候学》复习思考题2013.12.9
- 《有多少块糖》教学设计
- 家庭因素对青少年犯罪的影响
- 企业社会责任文献综述