- 1、本文档共136页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验讲义()
数据结构实验指导
(C语言版)
李岩芳
何巍
李晓荣
内容简介
《数据结构实验讲义》(C语言版)是为配合数据结构课程的教学,加强学生对数据结构的抽象数据类型的理解,提高学生分析问题、解决问题的能力,及对学生进行数据结构算法的实际应用技能的训练而编写的讲义,也可作为教师讲解数据结构及其算法、指导学生上机的参考资料。
本实验讲义按照数据结构课程的教学内容分别描述了线性、树形、图形、集合四种数据结构的抽象数据类型及其它们的基本操作算法在C语言平台上的实现过程,特别注重对算法的分析及理解,并进行了适当的拓展提问,方便学生更加深入地理解数据结构的抽象数据类型的描述。
目录
引言 4
实验一:顺序存储的线性表的操作 6
实验二:链式存储的线性表的操作 23
实验三:栈的操作 34
实验四:循环队列的操作 46
实验五:数组的操作 55
实验六:树的操作 67
实验七:图的操作 75
实验八:排序 89
引言
数据结构是一门研究非数值计算程序设计问题中的计算机操作对象以及它们之间关系和操作等的学科。
数据的组织结构以及对这些结构化数据操作的实现是这门学科的核心问题。而以数据对象、数据关系和基本操作为考察内容的抽象数据类型正好体现了这门学科的研究中心。所以对抽象数据类型的理解是掌握数据结构的基础。
线性结构、树形结构和图形结构是三种基本的抽象数据类型。对这三种抽象数据类型的实现和应用的理解和掌握,不但是学习数据结构的基本要求,也是学习数据结构的基本手段和方法。这三种抽象数据类型除了有空间上的可理解性以外,也具有操作上的易理解性。所以,在学习数据结构的时候,除了建立空间上数据的关系和操作概念以外,通过实际操作实现这些基本抽象数据类型,是降低抽象数据类型的抽象性,提高对数据结构理解能力的一个有效途径。这也是发挥数据结构在设计和实现中主导作用的必经之路。
本书正是从这三种基本抽象数据类型的数据描述、结构与操作分析和算法实现等入手,从实践的角度对抽象数据类型和数据结构进行了讲解和阐述。在基本抽象数据类型空间概念的基础之上,重点讲述了基于这些抽象数据类型、基于所包含元素及其关系的操作的实现过程。同时,在对本书的学习过程中,希望读者能重点体会:
1.抽象数据类型的概念。即:数据对象、数据关系以及这之上的操作。数据及其关系是实现操作的基础。而操作是抽象数据类型特性的真正体现。
2.线性结构、树形结构和图形结构这三种基本抽象数据类型的结构特性和操作特性。对这三种抽象数据类型的理解和应用不仅是其他后续课程的基础,也是应用系统设计实现的基础。
3.算法实现对物理结构的依赖性。抽象数据类型所描述的操作,只是一种逻辑操作,具体的实现依赖于对这个抽象数据类型元素的物理存储结构。比较有代表性的例子就是:以顺序存储结构和链式存储结构为基础的线形表,基本操作的算法却完全不同。
4.程序的实现过程大体上是从结构设计、算法设计到算法实现。应该在学习程序设计的开始培养好这种良好习惯。把结构和算法设计作为程序设计的一个重要任务来完成。结构和算法设计上的缺陷,将导致程序的最终失败。
本书设计有八个实验。实验一到实验五为线性结构的设计与应用。实验六和实验七分别为树形结构和图形结构的设计与应用。实验八排序是基于线性结构的具体应用,也是数据结构课程中的经典算法。
书中每个实验都分为实验目的及要求、实验内容、功能函数的分析设计及源代码和习题四个部分。其中,源代码为参考代码,供读者在编码的时候参考。正确设计程序结构,书写流程图和独立完成编码是非常重要的一种能力,希望读者能够从本书中得到借鉴。
实验一:顺序存储的线性表的操作
一、实验目的及要求
⒈理解线性表顺序存储的抽象数据类型的定义,及在C语言环境中的表示方法。
⒉理解线性表在顺序存储时的基本操作的算法,及在C语言环境中一些主要基本操作的实现。 ⒊在C语言环境下实现线性表在顺序存储时的应用操作:
将两个非递减的线性表合并成一个新的非递减的线性表。
二、实验内容
经过对实验目的及要求的分析,确定了本实验实现如图1.1所示的功能。
图1.1 SqList.c程序功能一览表
在合并两个线性表这个功能上,用两种方式实现,一种是利用已有的基本操作集完成合并,另一种是对线性表进行直接合并操作。因此,本实验编写了两个程序:SqList.c,包含基本操作集函数及利用基本操作集函数编写的合并线性表的函数。SqlMerge.c,没有利用基本操作集函数,直接对线性表操作实现两个线性表的合并。
在SqList.c中包含的函数如图1.2所示。
图1.2 SqList.c中包含的函数一览表
三、功能函数的分析设计及源代码
本部分列出了实现顺序存储的线性表操作的源代码,并在适当的位置上添加了一些文字和流程图的注释,帮助学生理解顺序存储的线性表的存储结构
您可能关注的文档
- 敬业与乐业的人物事.doc
- 数二历年真题(205-2015.doc
- 数值分析参考答案(三章).doc
- 敬老院设施建设指导见(试行).doc
- 数字dvb-c电视案.doc
- 敬畏作文素材.doc
- 数字化地形图测绘技的应用分析.doc
- 数字化校园信息技术理细则.doc
- 数字信号的载波传输.doc
- 数字基带通信系统实.doc
- 2025年一级建造师考试《水利水电工程管理与实务》冲刺必刷卷.docx
- 2025年一级建造师考试《水利水电工程管理与实务》逆袭破题卷1.docx
- 2025年一级建造师考试《市政工程管理与实务》冲刺必刷卷 .docx
- 2025年一级造价工程师考试《建设工程计价》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价管理》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(安装专业)》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(土建专业)》预习卷.docx
- 2025年中级会计考试《会计实务》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》全真模拟卷.docx
最近下载
- 中国共产主义青年团团章.doc VIP
- 照明工程数量表计算.xlsx VIP
- 2024汽车维修工时定额.docx VIP
- 内网及邮箱用户名列表.doc VIP
- 新解读《GB_T 18295 - 2001油气储层砂岩样品扫描电子显微镜分析方法》最新解读.docx VIP
- DB11T 945.1-2023建设工程施工现场安全防护、场容卫生及消防保卫标准 第1部分:通则.pdf VIP
- JGT 160-2017 混凝土用机械锚栓.docx VIP
- 建筑施工安全生产治本攻坚三年行动方案(2024-2026年).docx VIP
- 2024年内蒙古巴林左旗林业和草原局国有公益林护林员招聘真题.docx VIP
- 鲁教版(五四学制)六年级上册地理期末复习重点知识点提纲(实用!).docx VIP
文档评论(0)