本书是与《数据结构(C语言版)(第3版)》配套学习的实验指导,全书共分8章,涵盖了数据结构课程的主要内容,同时兼顾了题目的广度和深度。每章包括内容概述、典型题解析、自测试题及参考答案、思考题及参考答案、实验题目及参考答案和课后习题解答。
出版说明
在我国高等教育逐步实现大众化后,越来越多的高等学校将会面向国民经济发展的第一线,为行业、企业培养各级各类高级应用型专门人才。为此,教育部已经启动了“高等学校教学质量和教学改革工程”,强调要以信息技术为手段,深化教学改革和人才培养模式改革。如何根据社会的实际需要,根据各行各业的具体人才需求,培养具有显著特色的人才,是我们共同面临的重大问题。具体地说,培养具有一定专业特色和特定能力的计算机专业应用型人才是计算机教育要解决的重要问题。
为了适应21世纪人才培养的需要,培养具有特色的计算机人才,急需一批适合各种人才培养特点的计算机专业教材。目前,一些高校在计算机专业教学和教材改革方面已经做了大量工作,许多教师在计算机专业教学和科研方面已经积累了许多宝贵经验。将他们的教学和科研成果转化为教材的形式,向全国其他学校推广,对于深化我国高等学校的教学改革具有十分重要的意义。
清华大学出版社在经过大量调查研究的基础上,决定组织编写《普通高校本科计算机专业特色教材精选》丛书。本套教材是针对当前高等教育改革的新形势,以社会对人才的需求为导向,主要以培养应用型计算机人才为目标,立足课程改革和教材创新,广泛吸纳全国各地高等院校优秀教师参与编写,从中精选出版确实反映计算机专业教学改革成果的特色教材,供普通高等院校计算机专业学生使用。
本套教材具有以下特点。
1. 编写目的明确
本套教材是在深入研究各学校办学特色的基础上,面向普通高校的计算机专业学生编写的。学生通过本套教材,主要学习计算机专业的基本理论和基本知识,接受利用计算机解决实际问题的基本训练,培养研究和开发计算机系统,特别是应用系统的基本能力。
2. 理论知识与实践训练相结合
根据计算学科的三个学科形态及其关系,本套教材力求突出学科的理论与实践紧密结合的特征,结合实例讲解理论,使理论来源于实践,又进一步指导实践。学生通过实践深化对理论的理解,更重要的是使学生学会理论方法的实际运用。在编写教材时突出实用性,并做到通俗易懂、易教易学,使学生不仅知其然,还要知其所以然,更要会其如何然。
3. 注意培养学生的动手能力
力求做到: 既注重培养学生分析问题的能力,也注重培养学生解决问题的能力,以适应新经济时代对人才的需要,满足就业要求。对每种教材都增加了能力训练部分的内容,以使学生通过学习和练习,能比较熟练地应用计算机知识解决实际问题。
4. 注重教材的立体化配套
对大多数教材都将陆续配套教师用课件、习题及其解答提示、学生上机实验指导等辅助教学资源。对有些教材还提供能在我社网站上下载的文件,以方便教学。
由于各学校的培养目标、教学要求和办学特色所不同,所以对特色教学的理解也不尽一致。我们恳切希望大家在使用教材的过程中,及时提出批评和改进意见,以便我们做好教材的修订改版工作,使其日趋完善。
我们相信经过大家的共同努力,这套教材一定能成为特色鲜明、质量上乘的优秀教材。同时,我们也希望通过本套教材的编写与出版,为“高等学校教学质量和教学改革工程”做出贡献。
数据结构是计算机及相关专业的一门核心课程, 又是计算机专业硕士研究生入学考试的必考科目之一。该课程概念多、知识涉及面广,其原理和算法十分抽象。为使学习者能尽快掌握课程的整体内容,我们编写了本书。
本书是与《数据结构(C语言版)(第3版)》(秦玉平、马靖善主编,清华大学出版社出版)配套的学习与实验指导教材。全书共分8章,涵盖了数据结构课程的主要内容,同时兼顾了题目的广度和深度;每章包括内容概述、典型题解析、自测试题、思考题、实验题目及参考答案(除第1章外)和习题解答。其中,内容概述给出了知识结构图、考核要求、重点难点和核心考点;典型题解析的题目精选于各高校历年研究生入学考试题目和具有丰富教学经验的教师在教学实践过程中设计、整理的题目,并给出了较详细的解析;自测题包括选择题、填空题、判断题、计算操作题和算法设计分析题,并提供了参考答案;实验题目依据考核要点和实际应用设计,题目多、覆盖面广,并提供了参考答案;思考题目根据常见问题设计,具有一定的扩展性和综合性,并给出了参考答案;习题解答给出了主教材习题的详细解答;最后在附录中给出了3套模拟题及参考答案和10个课程设计题目。
本书第1章、第4章和附录由马靖善编写;第2章、第3章、第5章和第6章由秦玉平编写;第7章由王丽君编写;第8章由张博编写。全部书稿由秦玉平和王丽君审校,所有算法由秦玉平调试。
本书的算法都用C语言函数实现,无须修改就可被调用。尽管本书是针对《数据结构(C语言版)》第3版(秦玉平、马靖善主编,清华大学出版社出版)编写的,但也可与其他数据结构教材配套使用,并可作为考研复习指导书。
在本书编写过程中,编者参考了大量有关数据结构的书籍和资料,在此对这些参考文献的作者表示感谢。由于书中题目数量较大,加之编者水平有限,难免存在错误和不当之数据结构学习与实验指导(C语言版)(第3版)前言处,恳请广大读者批评指正,以便再版时改进。
本书受辽宁省普通高等学校本科教育教学改革研究项目(UPRP20140661)资助。
作者2015年8月
第1章概述1
1.1内容概述1
1.2典型题解析2
1.2.1考查基本概念2
1.2.2考查算法分析3
1.3自测试题4
1.4思考题7
1.5习题解答7
1.6自测试题参考答案12
1.7思考题参考答案13
第2章线性表15
2.1内容概述15
2.2典型题解析16
2.2.1考查线性表的各种存储结构及优缺点16
2.2.2考查线性表在各种存储结构上插入和删除操作18
2.2.3考查线性表在各种存储结构上的结点顺序
调整操作20
2.2.4考查线性表在各种存储结构上的查找操作23
2.2.5考查线性表在各种存储结构上的分解和
合并操作25
2.3自测试题27
2.4实验题目30
2.5思考题31
2.6习题解答32
2.7自测试题参考答案46
2.8实验题目参考答案492.9思考题参考答案54
数据结构学习与实验指导(C语言版)(第3版)目录
第3章特殊线性表55
3.1内容概述55
3.2典型题解析56
3.2.1考查栈的特点及其基本操作56
3.2.2考查队列的特点及其基本操作58
3.2.3考查串的有关概念及基本操作61
3.3自测试题65
3.4实验题目68
3.5思考题68
3.6课后习题解答69
3.7自测试题参考答案79
3.8实验题目参考答案81
3.9思考题参考答案86
第4章数组和广义表89
4.1内容概述89
4.2典型题解析90
4.2.1考查数组90
4.2.2考查广义表93
4.3自测试题95
4.4实验题目97
4.5思考题98
4.6习题解答98
4.7自测试题参考答案106
4.8实验题目参考答案108
4.9思考题参考答案109
第5章树和二叉树111
5.1内容概述111
5.2典型题解析112
5.2.1考查二叉树定义及其性质112
5.2.2考查二叉树的存储及其遍历113
5.2.3考查线索二叉树119
5.2.4考查森林(树)的存储及其遍历121
5.2.5考查赫夫曼树及其应用123
5.3自测试题124
5.4实验题目127
5.5思考题128
5.6习题解答128
5.7自测试题参考答案142
5.8实验题目参考答案144
5.9思考题参考答案150
第6章图153
6.1内容概述153
6.2典型题解析154
6.2.1考查图的基本概念154
6.2.2考查图的存储结构155
6.2.3考查图的遍历158
6.2.4考查生成树和最小生成树160
6.2.5考查图的应用163
6.3自测试题166
6.4实验题目170
6.5思考题171
6.6习题解答171
6.7自测试题参考答案179
6.8实验题目参考答案181
6.9思考题参考答案185
第7章查找187
7.1内容概述187
7.2典型题解析188
7.2.1考查静态查找表188
7.2.2考查动态查找表191
7.2.3考查散列表197
7.3自测试题203
7.4实验题目206
7.5思考题206
7.6习题解答207
7.7自测试题参考答案217
7.8实验题目参考答案219
7.9思考题参考答案223
第8章内部排序225
8.1内容概述225
8.2典型题解析226
8.2.1考查具体排序算法的排序过程226
8.2.2考查具体排序算法性能227
8.2.3考查算法分析和实现能力229
8.3自测试题231
8.4实验题目234
8.5思考题234
8.6习题解答235
8.7自测试题参考答案245
8.8实验题目参考答案247
8.9思考题参考答案250
附录A模拟试题A253
附录B模拟试题B261
附录C模拟试题C269
附录D课程设计题目277
参考文献280
1.1内容概述1
1.2典型题解析2
1.2.1考查基本概念2
1.2.2考查算法分析3
1.3自测试题4
1.4思考题7
1.5习题解答7
1.6自测试题参考答案12
1.7思考题参考答案12
第2章线性表15
2.1内容概述15
2.2典型题分析16
2.2.1考查线性表的各种存储结构及优缺点16
2.2.2考查线性表在各种存储结构上的插入和删除
操作18
2.2.3考查线性表在各种存储结构上的结点顺序调整
操作20
2.2.4考查线性表在各种存储结构上的查找操作23
2.2.5考查线性表在各种存储结构上的分解和合并
操作25
2.3自测试题27
2.4实验题30
2.5思考题31
2.6习题解答31
2.7自测试题参考答案45数据结构学习与实验指导(C语言版)目录2.8实验题参考答案48
2.9思考题参考答案53
第3章特殊线性表55
3.1内容概述55
3.2典型题解析56
3.2.1考查栈的特点及其基本操作56
3.2.2考查队列的特点及其基本操作58
3.2.3考查串的有关概念及基本操作61
3.3自测试题65
3.4实验题68
3.5思考题68
3.6习题解答69
3.7自测试题参考答案78
3.8实验题参考答案80
3.9思考题参考答案85
第4章数组和广义表87
4.1内容概述87
4.2典型题解析88
4.2.1考查数组88
4.2.2考查广义表91
4.3自测试题93
4.4实验题96
4.5思考题96
4.6习题解答96
4.7自测试题参考答案104
4.8实验题参考答案106
4.9思考题参考答案107
第5章树和二叉树109
5.1内容概述109
5.2典型题解析110
5.2.1考查二叉树定义及其性质110
5.2.2考查二叉树的存储及其遍历111
5.2.3考查线索二叉树117
5.2.4考查森林(树)的存储及其遍历119
5.2.5考查赫夫曼树及其应用121
5.3自测试题122
5.4实验题125
5.5思考题126
5.6习题解答126
5.7自测试题参考答案138
5.8实验题参考答案141
5.9思考题参考答案146
第6章图149
6.1内容概述149
6.2典型题解析150
6.2.1考查图的基本概念150
6.2.2考查图的存储结构151
6.2.3考查图的遍历154
6.2.4考查生成树和最小生成树156
6.2.5考查图的应用159
6.3自测试题162
6.4实验题166
6.5思考题167
6.6习题解答167
6.7自测试题参考答案175
6.8实验题参考答案177
6.9思考题参考答案181
第7章查找183
7.1内容概述183
7.2典型题解析183
7.2.1考查静态查找表183
7.2.2考查动态查找表187
7.2.3考查散列表193
7.3自测试题199
7.4实验题201
7.5思考题202
7.6习题解答202
7.7自测试题参考答案212
7.8实验题参考答案215
7.9思考题参考答案219
第8章内部排序221
8.1内容概述221
8.2典型题解析221
8.2.1考查具体排序算法的排序过程221
8.2.2考查具体排序算法性能223
8.2.3考查算法分析和实现能力225
8.3自测试题227
8.4实验题230
8.5思考题230
8.6习题解答231
8.7自测试题参考答案241
8.8实验题参考答案243
8.9思考题参考答案246
附录A模拟试题A247附录B模拟试题B255附录C模拟试题C263附录D课程设计题目271参考文献274
上篇例题解析与习题解答
第1章Java语言概述与编程环境3
1.1例题解析3
1.2习题解答4
第2章Java编程基础7
2.1例题解析7
2.2习题解答10
第3章控制结构13
3.1例题解析13
3.2习题解答15
第4章类与对象的基本概念27
4.1例题解析27
4.2习题解答30
第5章类的高级特性41
5.1例题解析41
5.2习题解答44
第6章常用类库47
6.1例题解析47
6.2习题解答48
第7章异常59
7.1例题解析597.2习题解答61
第8章输入输出流65
8.1例题解析65
8.2习题解答67
第9章多线程73
9.1例题解析73
9.2习题解答76
JavaEE基础教程实验指导与习题解析目录第10章数据库编程81
10.1例题解析81
10.2习题解答83
第11章Java Web概述与Web发布89
11.1例题解析89
11.2习题解答90
第12章JSP技术93
12.1例题解析93
12.2习题解答97
第13章JavaBean105
13.1例题解析105
13.2习题解答106
第14章Servlet基础知识113
14.1例题解析113
14.2习题解答116
第15章Servlet的会话跟踪技术119
15.1例题解析119
15.2习题解答121
第16章过滤器127
16.1例题解析127
16.2习题解答129
第17章EL与JSTL133
17.1例题解析133
17.2习题解答135
第18章JSP自定义标签137
18.1例题解析137
18.2习题解答139
中篇实验
实验1Java开发环境与开发工具145
实验目标145
实验任务145
实验2Java编程基础149
实验目标149
实验任务149
实验3控制结构155
实验目标155
实验任务155
实验4类与对象157
实验目标157
实验任务157
实验5抽象类与接口161
实验目标161
实验任务161
实验6常用类库167
实验目标167
实验任务167
实验7异常171
实验目标171
实验任务171
实验8输入输出流175
实验目标175
实验任务175
实验9多线程177
实验目标177
实验任务177
实验10数据库编程181
实验目标181
实验任务181
实验11JSP开发基础189
实验目标189
实验任务189
实验12JSP技术与JavaBean195
实验目标195
实验任务195
实验13Servlet基础203
实验目标203
实验任务203
实验14Servlet会话跟踪技术207
实验目标207
实验任务207
实验15过滤器213
实验目标213
实验任务213
实验16EL表达式与JSTL217
实验目标217
实验任务217
下篇项目实训——网上书店
需求描述221
开发环境221
案例采用的技术221
需求分析221
案例实施222