数据结构(C语言版)习题解答及实训指导

-
【作 者】李根强 谢月娥
【I S B N 】978-7-5170-5336-1
【责任编辑】封裕
【适用读者群】本专通用
【出版时间】2017-05-28
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】252
【千字数】390
【印 张】15.75
【定 价】¥32
【丛 书】普通高等教育“十三五”规划教材(软件工程专业)
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书是与《数据结构(C语言版)》(李根强、刘浩、谢月娥主编)一书配套的辅导教材。全书包含两部分内容:教材的习题及解答、上机实训指导。书中除给出配套教材中习题的解答外,还给出了典型例题的算法分析、算法实现;上机实训指导给出了十套实训题,每套实训题包含多个上机题目,给出了实训目的、算法提示、算法实现,各院校相关人员可根据实际情况选取。
本书内容丰富、题型多样、涉及面广、适用性强,与《数据结构(C语言版)》一书的内容紧密结合,既可以作为高等院校本科及专科教材,也可以作为硕士研究生入学考试的参考书,还可以供自学人员参考使用。
内容丰富,题型多样。
涉及面广,适用性强。
习题精解,综合训练。
“数据结构”课程是计算机专业及相关专业的一门重要专业基础课,也是一门必修的核心课程。在计算机科学的各领域中,都会用到各种不同的数据结构:编译系统中要使用栈、散列表、语法树等;操作系统中要使用队列、存储管理表、目录树等;数据库系统中要使用线性表、链表、索引树等;人工智能中要使用广义表、检索树、有向图等;同样在面向对象程序设计、计算机图形学、软件工程、多媒体技术、计算机辅助设计等领域,也会用到各种不同的数据结构。因此,学好“数据结构”这门课程,对于从事计算机技术及相关领域的工作人员来说是非常重要的,它可以使我们掌握各种不同的数据结构及其使用场合、算法的具体实现,以及每一种算法的时间复杂度分析和空间复杂度分析,知道在哪种情况下,使用哪种数据结构最方便,为以后开发大型程序而使用各种不同的数据结构奠定基础。
由于数据结构的原理和算法比较抽象,而该课程一般在刚学完程序设计后开设,学生在程序设计方面的知识较少,因此,对于仅具有一些计算机程序设计基础的初学者来说,理解和掌握数据结构中的原理和算法就比较困难,在解答数据结构习题时,往往感到无从下手,更不知道算法如何描述、如何编写,作者在多年的教学中也深有感触。作者通过多年的教学实践,收集、整理进而编写了这本《数据结构(C语言版)习题解答及实训指导》,目的是:通过对习题的解答,使学生充分掌握数据结构的原理、求解数据结构问题的思路和方法,并编写出正确的算法,进一步加深学生对基本概念的理解,提高学生分析问题和解决问题的能力,为其整个专业的学习打下坚实基础,并为今后大型软件开发积累较丰富的经验。
本书是《数据结构(C语言版)》的配套教材,共两大部分内容。第一部分为习题及解答,包含配套教材中的习题和一些综合题,主要是对教材中的习题给出解答思路提示、算法分析,最后再给出完整的答案、算法或程序。每章都包含基本概念和算法设计方面的题型,以帮助学生掌握数据结构的基本概念,提高其使用各种不同的数据结构分析问题、解决问题的能力。第二部分为上机实训指导,包含C语言的上机环境介绍,并给出了十套实训题,每套实训题包括多道上机题目,都给出了实训目的、采用的主要方法和算法设计技巧,最后给出了完整的C语言源程序来实现算法,本书所有C语言源程序都在VC++ 6.0环境下运行通过。这些实训题可以使学生了解并学会如何运用数据结构知识去解决现实世界中的某些实际问题,且具备设计较复杂算法的基本能力。
本书的目的是帮助学生学好“数据结构”这门课程,所以在使用本书的过程中,请注意以下几点:第一,该书要与《数据结构(C语言版)》教材一起使用,以便与课程内容同步,有利于学生进一步掌握各种基础知识,加深对课堂所讲授内容的理解;第二,算法设计是不唯一的,除了书中给出的算法外,学生可能还会有其他的算法,这说明学生对这方面的知识掌握得很好;第三,本书旨在帮助学生学习和理解数据结构知识,请学生在做作业前,先自己动脑思考、动手写,不要盲目照抄答案,否则只会收到事倍功半的效果。
本书的最大特点是采用C语言作为算法的描述语言,所有算法都已经上机调试通过。但是,由于篇幅所限,大部分算法都是以单独的函数形式给出,若读者要运行这些算法,还必须给出一些变量的说明及主函数来调用所给的函数。因此,书中的算法描述比用类C语言描述的算法更直观,更易于读者理解和接受。作者在十几年的“数据结构”课程教学中,对数据结构中的各种算法进行了认真的研究和分析,在这方面积累了丰富的经验,因此,书中所选的综合题和习题都具有一定的针对性,都是针对特定的数据结构来描述的,能为复杂的数据结构算法描述架桥铺路。
本书可以作为高等院校本科及专科学生学习数据结构的参考资料,也可作为数据结构自学者的参考书和硕士研究生入学考试的参考教材,同时还可供从事计算机应用工作的工程与技术人员参考。选用本书的学校,可以根据学校自身的条件,在十套实训题中有针对性地选择。
本书由李根强、谢月娥担任主编,由李根强老师统稿、修改、定稿。在本书的编写过程中,得到了湖南大学计算机与通信学院领导的大力支持,在此深表感谢。
由于时间仓促及作者水平有限,书中不妥和错误之处在所难免,敬请广大读者批评指正。
编 者
2017年2月
第1章 绪论 1
1.1 基本概念 1
1.1.1 数据结构 1
1.1.2 存储方式 1
1.1.3 算法及评价 2
1.2 习题及解答 2
1.2.1 配套教材中的习题 2
1.2.2 综合题 10
第2章 线性表 14
2.1 基本概念及运算 14
2.1.1 顺序表 14
2.1.2 线性链表 14
2.1.3 双向链表 14
2.1.4 循环链表 14
2.2 习题及解答 14
2.2.1 配套教材中的习题 14
2.2.2 综合题 31
第3章 栈和队列 37
3.1 基本概念及运算 37
3.1.1 栈 37
3.1.2 队列 37
3.2 习题及解答 37
3.2.1 配套教材中的习题 37
3.2.2 综合题 46
第4章 串 53
4.1 基本概念及运算 53
4.1.1 串的顺序存储及运算 53
4.1.2 串的链式存储及运算 53
4.2 习题及解答 53
4.2.1 配套教材中的习题 53
4.2.2 综合题 62
第5章 多维数组和广义表 67
5.1 基本概念及运算 67
5.1.1 多维数组的概念及存储 67
5.1.2 特殊矩阵及压缩存储 67
5.1.3 稀疏矩阵及压缩存储 67
5.1.4 广义表的存储及运算 67
5.2 习题及解答 68
5.2.1 配套教材中的习题 68
5.2.2 综合题 75
第6章 树和二叉树 81
6.1 树的基本概念 81
6.1.1 树的定义 81
6.1.2 基本术语 81
6.1.3 树的表示 82
6.2 二叉树的基本概念和性质 82
6.2.1 二叉树的定义 82
6.2.2 二叉树的性质 82
6.2.3 二叉树的存储结构 83
6.2.4 二叉树的基本运算 83
6.2.5 二叉树的应用 83
6.2.6 树、森林和二叉树之间的相互关系 83
6.3 习题及解答 83
6.3.1 配套教材中的习题 83
6.3.2 综合题 93
第7章 图 102
7.1 基本概念及运算 102
7.1.1 图的基本术语 102
7.1.2 图的存储形式 103
7.1.3 图的基本运算 103
7.2 习题及解答 103
7.2.1 配套教材中的习题 103
7.2.2 综合题 123
第8章 查找 131
8.1 基本概念 131
8.1.1 顺序查找 131
8.1 2 二分查找 131
8.1.3 分块查找 131
8.1.4 二叉排序树查找 131
8.1.5 散列查找 132
8.2 习题及解答 132
8.2.1 配套教材中的习题 132
8.2.2 综合题 139
第9章 内排序 144
9.1 基本概念 144
9.1.1 插入排序 144
9.1.2 交换排序 144
9.1.3 选择排序 144
9.1.4 归并排序 144
9.1.5 分配排序 144
9.2 习题及解答 144
9.2.1 配套教材中的习题 144
9.2.2 综合题 155
第10章 外排序 160
10.1 基本概念 160
10.1.1 外排序的基本概念 160
10.1.2 初始归并段的生成 160
10.1.3 多路平衡归并 160
10.2 习题及解答 160
第11章 文件 175
11.1 基本概念 175
11.1.1 文件的基本概念 175
11.1.2 文件的存储和组织 175
11.2 习题及解答 176
第二部分 上机实训指导
第12章 上机环境 178
12.1 Turbo C上机环境 178
12.1.1 建立C语言源程序 178
12.1.2 打开已存在的C语言源程序 179
12.1.3 编译并运行C语言源程序 179
12.2 Visual C++上机环境 181
12.2.1 新建C语言源程序并编译和运行 181
12.2.2 打开已经存在的源程序并编译
和运行 187
12.2.3 源程序的保存 189
第13章 实训内容 190
实训题一 线性表的顺序存储 190
一、实训目的 190
二、实训内容 190
三、算法描述 190
实训题二 线性表的链式存储 193
一、实训目的 193
二、实训内容 194
三、算法描述 194
实训题三 栈和队列的应用 203
一、实训目的 203
二、实训内容 203
三、算法描述 203
实训题四 多维数组的应用 212
一、实训目的 212
二、实训内容 212
三、算法描述 212
实训题五 二叉树的遍历和应用 218
一、实训目的 218
二、实训内容 218
三、算法描述 218
实训题六 哈夫曼树的建立及应用 226
一、实训目的 226
二、实训内容 226
三、算法描述 226
实训题七 图的邻接矩阵和遍历 228
一、实训目的 228
二、实训内容 229
三、算法描述 229
实训题八 图的邻接表和遍历 231
一、实训目的 231
二、实训内容 231
三、算法描述 231
实训题九 查找 234
一、实训目的 234
二、实训内容 234
三、算法描述 234
实训题十 排序 238
一、实训目的 238
二、实训内容 238
三、算法描述 238
参考文献 246
- 零基础玩转国产大模型DeepSeek [徐永冰 张帅 编著]
- 网络工程师5天修炼(适配第6版考纲) [主编 朱小平 施游]
- 信息系统项目管理师考试32小时通关(适用第4版考纲) [薛大龙]
- 信息系统管理工程师考试32小时通关(适配第2版考纲) [薛大龙 刘伟]
- 土木工程材料检测实训 [洪晓江 达则晓丽 钱波]
- 科技信息检索与论文写作实用教程 [李振华]
- 传统山水画论解读与实践 [陈钠 著]
- Python数据库编程 [主编 殷树友 邢 翀]
- 计算机基础实训指导 [主编 袁春萍 朱妮]
- 嵌入式人工智能技术应用(数字教材) [主编 胡娜 杨国勇 晏廷荣]
- Vienna整流器技术 [桂存兵 著]
- 变频器与伺服应用 [陈刚 叶云飞]
- 物联网工程设计与实践 [汤琳 李敏]
- 炉边夜话——深入浅出话AI [汪建 著]
- 电商运营与管理 [钟肖英 陈潇]
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- 信息技术基础(Windows 10+WPS Office)(微课版) [主编 石利平 田辉平 谢盛嘉]
- 人工智能应用 [主编 陈 萍 刘培培 陈孟军]
- 大学生职业发展与就业指导 [主编 刘志坚]
- 高级办公应用项目教程 [主编 屈晶 赵成丽]
- 微信小程序开发项目实战(微课版) [主编 黄龙泉 郭峰 朱倩]
- 企业档案工作实战宝典百问百答 [华俊 卢秀英 邵甜甜 著]
- 计算机网络原理及应用 [主编 唐继勇 叶坤 孙梦娜]
- 大学生创业基础 [主编 王丽莉 王 杨]
- 船舶辅机 [主编 王连海 于洋 姜淑翠]
- 大学生就业指导 [主编 王丽莉 董宴廷]
- 系统架构设计师章节习题与考点特训 [主编 薛大龙 邹月平]
- 高校学生工作探索与实践 [郭亮 著]
- 大学生情商管理 [方雄 著]
- 2023年长沙市会展业发展报告 [主编 周栋良]