- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《应用数据结构》实验指导书
《应用数据结构》实验指导书
课程编号:
课程名称:应用数据结构/Applied Data Structure
实验学时:16
适应专业:工科类
承担实验室:管理学院实验中心
一、实验目的和任务
1.实验教学的目的
本课程的教学要求之一是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,其重要程度绝不亚于知识传授。实验的作用在于帮助学生深入理解教材内容,巩固基本概念,促使学生在动手过程中进一步体会C语言中数据结构的运用技巧,并锻炼学生在调试过程中分析和发现问题的能力。
2.实验教学的要求
学生应掌握C语言基本编程能力并运用数据结构的原理和方法解决具体问题。除按时上机外,学生应具备构造算法并用程序实现的能力;在程序调试过程中,学生应能正确解读程序的错误提示并找到有效的解决办法。此外,规范书写算法也是一个值得高度重视的问题,教师有责任在教学过程中提醒学生,避免形成一系列难以纠正且贻害无穷的程序设计坏习惯。此外,本门课程设计的算法比较多,要求教师熟练掌握C语言和数据结构各类算法,并能准确理解和回答学生提出的编程问题。
二、实验项目及学时分配
序号 实 验 项 目 名 称 实验学时 实验类型 开出要求 1 线性数据结构算法验证 4 验证及演示 必做 2 非线性数据结构算法验证 4 验证及演示 必做 3 查找及排序 4 验证及演示 必做 4 综合算法设计 4 综合 必做
三、参考资料
李业丽、郑良斌编著,数据结构(C)实验教程,北京理工大学出版社,2005年12月出版
严蔚敏,吴伟民编著,数据结构习题集(C语言版),清华大学出版社,1999年2月出版。
四、单项实验的内容和要求(包括实验所用的主要仪器设备,实验所需主要耗材)
实验一 线性数据结构算法验证
1.实验目的与意义
熟悉C语言的上机环境,进一步掌握C语言的结构特点
掌握线性表的顺序存储结构的定义及C语言实现
掌握线性表的链式存储结构——单链表的定义及C语言实现
掌握线性表在顺序存储结构——即顺序表中的各种基本操作
掌握线性表在链式存储结构——单链表中的各种基本操作
掌握栈的顺序表示和实现
掌握栈的链式表示和实现
掌握队列顺序表示和实现
掌握队列链式表示和实现
2.基本原理和方法
本实验涉及各类线性数据结构——线性表、栈和队列等。
单链表的各种操作,包括单链表的建立,结点的查找、插入、删除等基本运算。链表中插入结点的指针变化和删除p所指结点的指针变化参见讲义。
栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。
对于顺序栈,入栈时,首先判断栈是否为满,栈满的条件为p-top==MAXNUM-1,栈满时,不能入栈;否则出现空间溢出,引起错误,这种现象称为上溢。
出栈和读栈顶元素操作,先判栈是否为空,为空时不能操作,否则产生错误。通常栈空作为一种控制转移的条件。
注意:
顺序栈中元素用向量存放。
栈底位置是固定不变的,可设置在向量两端的任意一个端点。
栈顶位置是随着进栈和退栈操作而变化的,用一个整型量top(通常称top为栈顶指针)来指示当前栈顶位置。
队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表。
入队时,将新元素插入rear所指的位置,然后将rear加1,出队时,删去front所指的元素,然后将front加1并返回被删除元素。
顺序队列中的溢出现象:
“下溢”现象。当队列为空时,做出队运算产生的溢出现象。“下溢”是正常现象,常用作程序控制转移的条件。
“真上溢”现象。当队列满时,做进找运算产生空间溢出的现象。“真上溢”是一种出错状态,应设法避免。
“假上溢”现象。由于入队和出队操作中,头尾指针只增加不减小,致使被删元素的空间永远无法重新利用。当队列中实际的元素个数远远小于向量空闻的规模时,也可能由于尾指针己超越向量空间的上界而不能做入队操作。该现象称为“假上溢”现象。
3.主要仪器设备及耗材
安装有Turbo C++ 3.0运行环境的电脑,无耗材要求。
4.实验方案或技术路线
本实验含有三部分内容——线性表、栈和队列。
A.线性表部分
采取建立学生成绩表的方法实现。即建立学生成绩单链表,链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域、要求完成的四项功能可写成四个函数,登记学生成绩对应建立学生单链表的功能,后三个功能分别对应单链表的查询、插入与删除三大基本操作。
该系统中的数据采用线性表中的链式存储结构即单链表来存储,用结构体类型定义每个学生记录,故该单链表中每个结点的结构可描述为:
#define MAXLEN 100
typedef struct node
{ int num;//学号
char name[MAXLEN];//姓名
float score;//成绩
struct node
文档评论(0)