- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
成人函授教育
《数据结构》自学指导书
适用计算机专业、本(专)科
黑龙江科技学院成教院
目 录
一、前 言………………………………………………………2
二、自学指导……………………………………………………3
三、各章节自学参考……………………………………………4
第一章 数据结构基本概念及简单的算法分析 …………4
第二章 线性表 ……………………………………………5
第三章 栈和队列…………………………………………10
第四章 串…………………………………………………11
第五章 数组和广义表……………………………………12
第六章 树和二叉树………………………………………13
第七章 图…………………………………………………17
第八章 查找………………………………………………19
第九章 排序………………………………………………22
四、期末考试试题类型说明…………………………………..34
一、前言
1、本课程的性质和任务
《数据结构》课程是计算机专业的一门专业基础课。它涉及在计算机中如何有效地表示数据,如何合理地组织数据和处理数据。内容包括:、链表、栈和队列、、树、图、、排序等。? 有关数据结构的讨论涉及哪三个方面?
【解答】
数据结构是指数据以及相互之间的关系。记为:数据结构 = { D, R }。其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。
有关数据结构的讨论一般涉及以下三方面的内容:
数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构;
② 数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构;
施加于该数据结构上的操作。
(2)、什么是算法? 算法的5个特性是什么? 试根据这些特性解释算法与程序的区别。
【解答】
通常,定义算法为“为解决某一特定任务而规定的一个指令序列。”一个算法应当具有以下特性:
① 有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。
② 有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。
③ 确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的动作都应严格地、清晰地规定。
④ 有穷性。一个算法无论在什么情况下都应在执行有穷步后结束。
⑤ 有效性。算法中每一条运算都必须是足够基本的。就是说,它们原则上都能精确地执行,甚至人们仅用笔和纸做有限次运算就能完成。
算法和程序不同,程序可以不满足上述的特性(4)。例如,一个操作系统在用户未使用前一直处于“等待”的循环中,直到出现新的用户事件为止。这样的系统可以无休止地运行,直到系统停工。
(3)、设n为正整数, 分析下列各程序段中加下划线的语句的程序步数
(1) for (int i = 1; i = n; i++)
for (int j = 1; j = n; j++) {
c[i][j] = 0.0;
for (int k = 1; k = n; k++)
c[i][j] = c[i][j] + a[i][k] * b[k][j];
}
第二章 线性表
1、教学内容:
顺序表:顺序表的定义和特点;顺序表的类型定义;顺序表的查找、插入和删除;
单链表:单链表的结构;单链表的类型定义;单链表中的插入与删除;带表头结点的单链表;静态链表;
2、教学要求:
了解:线性表的逻辑结构特性,以及线性表的两种存储实现方式;
了解:链表与数组一样,是一种实现级结构。有动态链表和静态链表之分;
掌握:顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算;
掌握:单链表的类定义、构造函数、单链表的插入与删除算法
掌握:双向链表的特点,双向链表的类定义及相关操作的实现,用双向链表解决问题的方法。
3、习题与解答:
(1)、 将顺序表 (a1,a2,... ,an) 重新排列为以 a1 为界的两部分:a1 前面的值均比 a1 小,a1 后面的值都比 a1 大(这里假设数据元素的类型具有可比性, 不妨设为整型),操作前后如图2.1所示。这一操作称为划分。a1 也称为基准。
划分的方法有多种,下面介绍的划分算法其思路简单,性能较差。
【解答】:从第二个元素开始到最后一个元素,逐一向后扫描:
(1)当前数据元素 aI 比 a1 大时,表明它已经在 a1
文档评论(0)