数据结构(C++版)(第二版)习题解答及实训指导

-
【作 者】李根强
【I S B N 】978-7-5084-6559-3
【责任编辑】张玉玲
【适用读者群】本科
【出版时间】2009-06-01
【开 本】16开本
【装帧信息】平装(光膜)
【版 次】第1版
【页 数】304
【千字数】
【印 张】
【定 价】¥28
【丛 书】普通高等教育“十一五”国家级规划教材配套参考书
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书是与《数据结构(C++版)》(第二版)(李根强主编)一书相配套的辅导教材。全书包含3部分内容:配套教材的习题解答及典型例题分析、上机实训指导、模拟试题及参考答案。本书除给出配套教材中习题的解答外,还给出了典型例题的算法分析、算法实现;上机实训部分给出了上机实训内容10个,每个上机实训内容包含多个上机题目,有实训目的、算法提示、算法分析、算法实现,各院校相关人员可根据实际情况选取;最后,作为本书的结束部分,给出了10套模拟试题,以检测学生学习数据结构、掌握数据结构知识的程度。10套模拟试题中,一部分内容是历年硕士研究生的入学考试题,对准备参加硕士研究生考试的本科生来说,有一定的参考价值。
本书内容丰富、题型多样、涉及面广、适应性强,与《数据结构(C++版)》(第二版)一书的内容紧密结合。既可以供高等院校本、专科学生使用,也可以作为硕士研究生入学考试的参考书,也可供各类学习数据结构的人员参考使用。
1.配套教材的习题解答及典型例题分析、上机实训指导、模拟试题及参考答案
2.典型例题的算法分析、算法实现
3.10个上机实训内容,均有实训目的、算法提示、算法分析、算法实现
4.10套模拟试题,以检测学生学习数据结构、掌握数据结构知识的程度
5.与《数据结构(C++版)》一书的内容紧密结合
数据结构课程是计算机专业及相关专业的一门重要专业基础课,也是一门必修的核心课程。在计算机科学的各领域中,都将会用到各种不同的数据结构,如编译系统中要使用栈、散列表、语法树等;操作系统中要使用队列、存储管理表、目录树等;数据库系统中要使用线性表、链表、索引树等;人工智能中要使用广义表、检索树、有向图等;同样在面向对象的程序设计、计算机图形学、软件工程、多媒体技术、计算机辅助设计等领域,都将会用到各种不同的数据结构。因此,学好数据结构这门课程,对于从事计算机技术及相关领域工作的人员来说是非常重要的,它可以使你掌握好各种不同的数据结构、在什么场合使用及算法的具体实现,以及每一种算法的时间复杂度分析和空间复杂度分析,知道在哪种情况下使用哪种数据结构最方便,为以后开发大型程序而使用各种不同的数据结构奠定基础。
由于数据结构的原理和算法比较抽象,而该课程一般在刚学完程序设计后开设,学生程序设计方面的知识较少,因此,对于仅具有一些计算机程序设计知识的初学者来说,理解和掌握数据结构中的原理和算法就比较困难,在解答数据结构习题时,往往感到无从下手,更不知道算法如何描述、如何编写,作者在多年的教学过程中深有感触。作者通过多年的教学实践,收集、整理进而编写了这本《数据结构(C++版)(第二版)习题解答及实训指导》,目的是通过对习题的解答,使学生充分掌握数据结构的原理、求解数据结构问题的思路和方法,以及最后编写出正确的算法,进一步加深对基本概念的理解,提高分析问题和解决问题的能力,为整个专业的学习打下坚实基础,为适应今后的大型软件开发提供和积累较丰富的经验。
本书是《数据结构(C++版)》(第二版)的配套指导教材。全书内容共分三大部分。第一部分为习题解答部分,包含配套教材中的习题和一些综合题,主要是对配套教材中的习题给出解答思路提示、算法分析,最后再给出完整的答案、算法或程序。每章的习题都包含基本概念和算法设计方面的题型,以帮助学生掌握数据结构的基本概念,提高用各种不同的数据结构分析问题、解决问题的能力。第二部分为上机实验及指导部分,包含C++的上机环境介绍,并给出了10个上机实习内容,每个上机实习都给出了多道上机题目,在每个上机实习中,都介绍了实习目的、采用的主要方法和算法设计技巧,最后给出了完整的C++源程序来实现算法,所有C++源程序都在C++环境下运行通过。通过这些实验,可以使学生了解并学会如何运用数据结构知识去解决现实世界中的某些实际问题,并具备设计较复杂算法的基本能力。第三部分为模拟试题部分,包含模拟试题和参考答案。模拟试题主要是为了帮助学生在学完数据结构课程后自我检验学习的效果。有易、较易、中等、较难等各种难度的题目分布在各套试题中,每套试题中有选择、判断、填空、应用、算法设计等各种题型,试题覆盖了教材中的大部分知识点,有助于学生对课程的系统复习。
本书的目的是帮助学生学好数据结构这门课程,所以在使用本书的过程中,请注意以下几点:第一,使用该书要与《数据结构(C++版)》(第二版)这本教材配套使用,以便与课程内容同步,有利于进一步掌握和理解各种基础知识,加深对课堂所讲授内容的理解;第二,算法设计是不唯一的,每道题除了书中给出的算法外,读者可能还会有其他的算法,这说明读者对这方面的知识掌握得很好;第三,该习题解答及指导是帮助学习和理解数据结构知识的,请学生在做作业前,先自己动脑思考、动手写,不要盲目照抄,否则只会收到事倍功半的效果。
本书的最大特点是采用面向对象的程序设计语言(C++语言)作为算法的描述语言,所有算法都已经上机调试通过。但是,由于篇幅所限,大部分算法都是以单独的函数形式给出,若读者要运行这些算法,还必须给出一些变量的说明及主函数来调用所给的函数。因此,本书中的算法描述比原来数据结构教材中用类C/C++语言描述算法更直观,学生更容易理解和接受。作者在十几年的数据结构课程教学中,对数据结构中的各种算法进行了认真的研究和分析,在这方面积累了丰富的经验,因此,本书中所选的综合题和习题都具有一定的针对性,都是针对特定的数据结构来进行描述的,方便学生理解和接受,并能为复杂的数据结构算法描述架桥铺路。
本书可以作为高等院校本、专科学生和教师学习数据结构的参考资料,也可以作为数据结构自学者的参考书和参加硕士研究生入学考试的参考教材,同时还可供从事计算机应用工作的工程与技术人员参考。选用该指导书上机实习的学校,可以根据学校本身的条件,在10个实习题中有针对性地选择一部分或者全选。
本书由李根强任主编,负责全书的统稿、修改、定稿工作,倪飞舟、钟志水、郭清溥任副主编。主要编写人员分工如下:李根强编写第一部分的第6~8章和第二部分的第2章,倪飞舟编写第一部分的第1~3章和第二部分的第1章,钟志水编写第一部分的第4、5章,史瑞芳编写第三部分,郭清溥编写第一部分的第9~11章。另外参加本书部分编写工作的还有:王刚、汪贵生、姚?、袁隽媛、蔡益红、谢月娥、秦志、杜四春、银红霞、满淑颖等。在本书的编写过程中,得到了湖南大学计算机与通信学院老师的大力支持,在此深表感谢。
由于时间仓促及作者水平有限,书中不妥和错误之处在所难免,敬请广大读者批评指正。
第一部分 习题与解答
第1章 绪论 1
1.1 基本概念 1
1.1.1 数据结构 1
1.1.2 存储方式 1
1.1.3 算法及评价 1
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 综合题 32
第3章 栈和队列 38
3.1 基本概念及其运算 38
3.1.1 栈 38
3.1.2 队列 38
3.2 习题及解答 38
3.2.1 配套教材中的习题 38
3.2.2 综合题 47
第4章 串 54
4.1 基本概念及运算 54
4.1.1 串的顺序存储及运算 54
4.1.2 串的链式存储及运算 54
4.2 习题及解答 54
4.2.1 配套教材中的习题 54
4.2.2 综合题 63
第5章 多维数组和广义表 68
5.1 基本概念及运算 68
5.1.1 多维数组的概念及存储 68
5.1.2 特殊矩阵及压缩存储 68
5.1.3 稀疏矩阵及压缩存储 68
5.1.4 广义表的存储及运算 68
5.2 习题及解答 69
5.2.1 配套教材中的习题 69
5.2.2 综合题 76
第6章 树和二叉树 82
6.1 树的基本概念 82
6.1.1 树的定义 82
6.1.2 基本术语 82
6.1.3 树的表示 83
6.2 二叉树的基本概念和性质 83
6.2.1 二叉树的定义 83
6.2.2 二叉树的性质 83
6.2.3 二叉树的存储结构 84
6.2.4 二叉树的基本运算 84
6.2.5 二叉树的应用 84
6.2.6 树、森林和二叉树之间的相互关系 84
6.3 习题及解答 84
6.3.1 配套教材中的习题 84
6.3.2 综合题 94
第7章 图 103
7.1 图的基本概念及运算 103
7.1.1 图的基本术语 103
7.1.2 图的存储形式 104
7.1.3 图的基本运算 104
7.2 习题及解答 104
7.2.1 配套教材中的习题 104
7.2.2 综合题 126
第8章 查找 135
8.1 基本概念 135
8.1.1 顺序查找 135
8.1.2 二分查找 135
8.1.3 分块查找 135
8.1.4 二叉排序树查找 135
8.1.5 散列查找 136
8.2 习题及解答 136
8.2.1 配套教材中的习题 136
8.2.2 综合题 142
第9章 内排序 148
9.1 基本概念 148
9.1.1 插入排序 148
9.1.2 交换排序 148
9.1.3 选择排序 148
9.1.4 归并排序 148
9.1.5 分配排序 148
9.2 习题及解答 148
9.2.1 配套教材中的习题 148
9.2.2 综合题 159
第10章 外排序 164
10.1 外排序的基本概念 164
10.1.1 基本概念 164
10.1.2 初始归并段的生成 164
10.1.3 多路平衡归并 164
10.2 习题及解答 164
第11章 文件 177
11.1 文件的基本概念 177
11.1.1 基本概念 177
11.1.2 文件的存储和组织 177
11.2 习题及解答 178
第二部分 实训指导
第1章 上机环境 180
1.1 Turbo C++上机环境 180
1.1.1 建立C++源程序 180
1.1.2 打开已存在的C++源程序 180
1.1.3 编译并运行C++源程序 181
1.2 Visual C++上机环境 183
1.2.1 新建C++源程序并编译和运行 183
1.2.2 打开已经存在的源程序并编译和运行 187
1.2.3 源程序的保存 189
第2章 实训内容 190
实训题一 线性表的顺序存储 190
实训题二 线性表的链式存储 194
实训题三 栈和队列的应用 203
实训题四 多维数组的应用 212
实训题五 二叉树的遍历和应用 218
实训题六 哈夫曼树的建立及应用 227
实训题七 图的邻接矩阵和遍历 229
实训题八 图的邻接表和遍历 232
实训题九 查找 235
实训题十 排序 239
第三部分 模拟试题及参考答案
模拟试题一 247
模拟试题二 250
模拟试题三 253
模拟试题四 255
模拟试题五 258
模拟试题六 260
模拟试题七 263
模拟试题八 265
模拟试题九 269
模拟试题十 272
模拟试题一参考答案 275
模拟试题二参考答案 277
模拟试题三参考答案 279
模拟试题四参考答案 281
模拟试题五参考答案 282
模拟试题六参考答案 283
模拟试题七参考答案 285
模拟试题八参考答案 286
模拟试题九参考答案 289
模拟试题十参考答案 291
参考文献 294
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- C++案例项目精讲 [主编 杨国兴]
- 数据结构(Python语言描述) [曹岳辉 刘卫国 康松林 编著]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C++程序设计(第三版) [主编 曹岳辉 刘卫国]
- 数据挖掘算法—基于C++及CUDA C [蒂莫西•马斯特斯(Timothy]
- 数据结构——C语言(微课版) [主编 梁海英]
- C++程序设计简明教程 [黄能耿 黄致远 胡丽丹]
- Visual C++6.0程序项目案例教程 [朱 铭 曾强聪 编著]
- 嵌入式应用Qt_C++传感数据采集开发实训教程 [主编 刘和文 文燕 谢忠敏]
- 数据结构(C语言版)习题解答及实训指导 [李根强 谢月娥]
- 数据结构(C语言版) [主编 李根强 刘浩 谢月娥]
- 数据结构(Java版) [主编 李云平]
- C++程序设计简明教程(第二版) [主 编 王晓东 副主编 陈艳海 ]
- C++ STL基础案例教程 [钟琪 著]
- 数据结构 [主编 韩利凯 朱浩悦]
- C++程序设计基础教程 [主编 刘志宝 朱伟华 谢利民]
- Visual C++ & Android程序设计综合实训(第二版) [主编 梁建武]
- 数据结构(C语言版)(第三版) [主编 库波 曹静]
- 数据结构(Java版) [孙琳 张宇]
- Visual C++程序设计教程(第二版) [梁建武]
- 数据结构 [许绘香 段明义]
- 数据结构(C语言描述) [李素若 陈万华 游明坤 编著]
- 数据结构习题解答及上机指导 [李素若 琚辉 严永松 编著]
- C++应用程序设计 [刘彦姝 谢景伟]
- C++程序设计 [陈国志 丛华 单正 编著]
- C++面向对象程序设计习题解答及上机指导 [李素若 杜华兵]
- C++面向对象程序设计 [李素若 杜华兵]
- C/C++程序设计学习辅导 [李婷 李云峰 编著]
- C/C++程序设计 [李云峰 李婷 编著]