《21世纪高等学校规划教材·计算机科学与技术:数据结构学习指导及实践教程》是在作者多年讲授数据结构课程及指导学生实验的教学实践经验的基础上编写而成的。全书分为上、中、下三篇,共11章。上篇是习题和解析篇,共9章。内容包括数据结构基本概念、线性表、栈和队列、串、数组与广义表、树和二叉树、图、查找、排序。每章包括习题解析和练习题两大模块。中篇是实验指导,内容包括实验流程、评价标准及11个主题实验,每个实验分为基础练习、进阶练习和扩展练习3个模块,其难度是递进式的。下篇是课程设计,内容包括课程设计实施方案、评价标准及21个课程设计备选题目。书后的附录给出了各章练习题的答案、实验报告格式范文以及课程设计格式范文。
《21世纪高等学校规划教材·计算机科学与技术:数据结构学习指导及实践教程》的案例及习题覆盖了数据结构课程各章的关键知识点,并结合研究生入学考试的考点,以及数据结构在acm/icpc程序设计比赛中的应用案例,题量丰富,内容全面。实验指导及课程设计的安排注重教学的实用性与易用性。书中所有的算法和程序均采用c语言描述并已调试通过。
作为《算法与数据结构(第2版)》(陈媛等,清华大学出版社)的配套学习辅导教材,《21世纪高等学校规划教材·计算机科学与技术:数据结构学习指导及实践教程》内容自成一体,因此也可脱离数据结构教材单独使用。可作为高等院校计算机专业、信息专业或其他相关专业学生学习数据结构和其他程序设计类课程的参考教材,或研究生入学考试的辅导材料,也可作为广大参加自学考试的人员和软件工作者的参考用书。
随着计算机技术的发展,其应用早已扩展到非数值计算领域,其涉及的复杂处理和操作包括插入、删除、排序和查找等。数据结构是计算机及相关专业重要的专业基础课程之一,是进行程序设计的理论和技术基础。数据结构旨在分析研究计算机加工的数据对象的特性,以便选择适当的数据结构和存储结构,使建立在其上的解决问题的算法达到最优,从而为开发非数值计算领域的高效计算机程序奠定坚实的理论和技术基础。
1. 结构安排
全书分为上、中、下三篇,共11章。
上篇是习题和解析篇,包括第1~9章。内容包括数据结构基本概念、线性表、栈和队列、串、数组与广义表、树和二叉树、图、查找、排序。每章包括习题解析和练习题两大模块,两者均包含选择题和综合题两种题型。其中习题解析对典型习题进行了深入细致的分析,并给出求解思路和完整的解答过程。
中篇是实验指导,为第10章。内容包括对实验流程及实验要求的详细描述,以及11个实验模块。每个实验模块分为基础练习、进阶练习和扩展练习三部分,题量充足,题目的选取注重常用数据结构的应用,旨在拓宽视野,引导创造性思维的发展。各模块的题目难度循序渐进,以适应不同读者的需要。
下篇是课程设计,为第11章。内容包括对课程设计实施方案及评价标准的详细描述,并根据数据结构课程的教学重点,给出21个课程设计备选题目。这些题目覆盖了常用数据结构、经典算法及其应用。
本书的附录包括各章练习题的答案、实验报告格式范文以及课程设计格式范文。
本书第10、11章由卢玲编写; 第3、6章由陈媛教授编写; 第1、7章由何波编写; 第2、4章由刘洁编写; 第5、8章由苟光磊编写; 第9章由刘恒洋编写; 本书附录由各章节负责人分别编写。全书由卢玲统稿。
2. 本书特点
本书内容的规划和组织源于作者多年讲授数据结构课程及指导学生实验的教学实践经验,同时参考了近年来出版的多种数据结构类书籍、研究生入学考试的考点以及数据结构在ACM/ICPC程序设计比赛中的应用案例编写而成。本书具有如下特色:
(1) 内容覆盖全面。
本书包括习题解析,实验指导,课程设计三部分内容,覆盖了教学的理论、实验、课程设计三大环节,使本书适用于教学全程,包括课内教学和课外自学,具有良好的实用性。
(2) 实验内容富有层次,具有良好的易用性。
本书的实验独立成篇,便于数据结构的实验教学。基础练习以“快速练习,熟练掌握”为目标; 进阶练习以“深入练习,灵活运用”为目标; 扩展练习以“多角度看问题,拓展思维”为目标。按难易层次划分实验内容,便于教师因人施教,也便于读者自学时进行自我评价。
(3) 典型习题案例,富有启发性。
本书所选习题与课程知识点结合紧密,并结合研究生入学考试的常见考点,以及数据结构在ACM/ICPC程序设计比赛中的典型应用案例。习题数量丰富,注重选取与实际应用相结合的带启发性的习题,以提高学习的兴趣,加深对常用数据结构的理解。
为方便教学,本书配套资料含练习题答案及实验习题、课程设计的答案。使用本书的院校可通过邮箱ll@cqut.edu.cn向作者索取。
3. 适用对象
本书内容自成一体,既可配合数据结构教材使用,也可以脱离教材作为单独的学习指导书使用,起到衔接课堂教学与实验教学、课后辅导的作用。
本书可作为高等院校计算机类本科、专科各专业、理工科信息类本科、专科各专业或其他相关专业学生学习数据结构和其他程序设计类课程的参考教材,或研究生入学考试的辅导教材,也可作为广大参加自学考试的人员和软件工作者的参考用书。
由于作者的知识和写作水平有限,书中习题及解答虽经过反复校验,仍难免有缺陷和错误,敬请广大同行专家和读者批评指正,以便我们及时修改。
编者
2012年7月
上篇 习题及解析篇
第1章 绪论
1.1 本章内容
1.1.1 基本内容
1.1.2 学习要点
1.1.3 习题解析
1.2 习题
1.2.1 基础题
1.2.2 综合题
第2章 线性表
2.1 本章内容
2.1.1 基本内容
2.1.2 学习要点
2.1.3 习题解析
2.2 习题
2.2.1 基础题
2.2.2 综合题
第3章 栈和队列
3.1 本章内容
.3.1.1 基本内容
3.1.2 学习要点
3.1.3 习题解析
3.2 习题
3.2.1 基础题
3.2.2 综合题
第4章 串
4.1 本章内容
4.1.1 基本内容
4.1.2 学习要点
4.1.3 习题解析
4.2 习题
4.2.1 基础题
4.2.2 综合题
第5章 数组与广义表
5.1 本章内容
5.1.1 基本内容
5.1.2 学习要点
5.1.3 习题解析
5.2 习题
5.2.1 基础题
5.2.2 综合题
第6章 树和二叉树
6.1 本章内容
6.1.1 基本内容
6.1.2 学习要点
6.1.3 习题解析
6.2 习题
6.2.1 基础题
6.2.2 综合题
第7章 图
7.1 本章内容
7.1.1 基本内容
7.1.2 学习要点
7.1.3 习题解析
7.2 习题
7.2.1 基础题
7.2.2 综合题
第8章 查找
8.1 本章内容
8.1.1 基本内容
8.1.2 学习要点
8.1.3 习题解析
8.2 习题
8.2.1 基础题
8.2.2 综合题
第9章 排序
9.1 本章内容
9.1.1 基本内容
9.1.2 学习要点
9.1.3 习题解析
9.2 习题
9.2.1 基础题
9.2.2 综合题
中篇 实验篇
第10章 实验指导
10.1 实验指南
10.1.1 实验内容设置
10.1.2 实验须知
10.1.3 实验环境说明
10.2 实验步骤
10.2.1 具体实验步骤
10.2.2 类 c语言与标准c的转换要点
10.3 实验内容
实验1 c语言的数组
实验2 c语言的指针和结构体
实验3线性表
实验4栈和队列
实验5串
实验6数组和广义表
实验7树和二叉树
实验8图
实验9查找
实验10排序
实验11递归
下篇 课程设计篇
第11章 课程设计
11.1 课程设计指南
11.1.1 课程设计须知
11.1.2 课程设计报告
11.2 课程设计题目
11.2.1 一元稀疏多项式计算器
11.2.2 成绩分析问题
11.2.3 简单个人图书管理系统的设计与实现
11.2.4 航班订票系统的设计与实现
11.2.5 模拟浏览器操作程序
11.2.6 停车场模拟管理程序
11.2.7 哈夫曼编/译码器
11.2.8 二叉排序树与平衡二叉树的实现
11.2.9 日期游戏
11.2.10 图的基本操作与实现
11.2.11 教学计划编制问题
11.2.12 全国交通咨询模拟
11.2.13 内部排序算法的性能分析
11.2.14 背包问题的求解
11.2.15 简易电子表格的设计
11.2.16 电话号码查询系统
11.2.17 迷宫问题
11.2.18 八皇后问题
11.2.19 滑雪场问题
11.2.20 农夫过河问题的求解
11.2.21 木棒加工问题求解
附录a参考答案
第1章 绪论
1.1 基础题
1.2 综合题
第2章 线性表
2.1 基础题
2.2 综合题
第3章 栈和队列
3.1 基础题
3.2 综合题
第4章 串
4.1 基础题
4.2 综合题
第5章 数组与广义表
5.1 基础题
5.2 综合题
第6章 树和二叉树
6.1 基础题
6.2 综合题
第7章 图
7.1 基础题
7.2 综合题
第8章 查找
8.1 基础题
8.2 综合题
第9章 排序
9.1 基础题
9.2 综合题
课程设计
附录b 实验报告格式
附录c 课程设计报告格式