
数据结构的核心问题是数据的组织结构以及对这些结构化数据操作的实现,本书从学习者掌握数据结构基本概念、理解数据结构思维和应用逻辑、引导拓展学习的角度出发,通过借用日常生活中的案例,同时利用流程图、二维码集成并获取动态演示技术等便捷、高效的工具,旨在引导数据结构的修学者轻松、深入、透彻地学好相关内容,并提供突破各类难题的有效途径,使数据结构这门课以轻松的面貌展示在读者面前。
全书共8章,除第1章外,其余各章按照“本章导学、习题解析、实验指导、综合实训”的思路,由浅入深地对线性结构、树结构、图结构、查找技术、排序技术等相关内容进行讲解和阐述。本章导学对知识要点进行归纳与总结;习题解析精选了课后和考研习题,从解题思路到求解过程予以详细解答;实验指导对理论的上机应用全过程进行引导;综合实训提供数据结构思维的实践思路和要点指导。通过本书的学习,读者能对每种数据结构有更深入的理解,能从理论到实践、从表面到思维方式都有更清晰和深入的认识。
本书实用性强,适合在校本科生学习及考研备考,教师以之作为教辅,以及计算机相关专业人员寻求专业指导、软件开发等不同需求。
数据结构是计算机及应用相关专业、自动化专业等的重要专业基础课,是计算机应用相关研发的必备技术技能基础,它不仅是计算机学科各专业的本科生必修的学位课程,还是计算机应用相关专业研究生考试的必考科目,而且已成为其他理工科专业的热门选修课或专业通识课程。
但数据结构课程内容抽象,学习量大,贯穿于全书的各种数据结构及算法实现令不少初学者望而生畏,很多读者在学习该课程时存在着很大困难。根据作者多年的教学和科研经验,其主要原因在于没有建立计算机专业的逻辑和思维,而数据结构就是培养计算机学科逻辑思维的基础。目前数据结构教辅方面的书籍很多,但往往有的仅着眼于习题及解答,有的着眼于设计应用,而从建立结构化的数据信息逻辑思维出发,以深入理解数据结构为基础,再进一步掌握应用数据结构的技术和方法的全过程去考虑,尤其是能言简意赅、引人入胜、润物无声地提供学习方法、思路,从理念上引导的书籍还是很缺少,很多人到用时都有难以“解渴”(在内容的深度或广度上有难以满足)的感觉。作者长期从事数据结构课程的教学,深切体会到初学者的迷茫及面对众多辅助书籍选择时的无所适从。基于以上,有了本书的构思,从必须掌握的基本知识的概括到习题解析,再到实验设计及综合实训,各环节逐步深入,由基础到实践应用,由点到面地引领读者达到学习目的。
本书遵循全国高等学校计算机专业本科数据结构课程的教学大纲的要求,按照“本章导学、习题解析、实验指导、综合实训”的思路,由浅入深的对线性结构、树结构、图结构、查找技术、排序技术等相关内容进行讲解和阐述。从内容上本书分为8章: 第1章绪论,讨论数据结构的基本概念及相关题解;第2章线性表,讨论顺序表、链表的基本概念及相关题解;第3章栈和队列,讨论其相关概念和题解;第4章串、数组及广义表,讨论串、数组和广义表的基本概念和相关题解;第5章树和二叉树,讨论树、二叉树的基本概念和相关题解;第6章图,讨论图的基本概念和相关题解;第7章查找技术,讨论基本查找方法及相关题解;第8章排序技术,讨论常用的内排序方法及相关题解。其中,第1、2、4章由许兆新编写,其余章节由唐文静编写,全书由唐文静统稿。
除第1章外,每章由“本章导学、习题解析、实验指导、综合实训”四部分组成,本章导学对知识要点进行归纳与总结;习题解析精选了大量习题,并予以详细解答,涵盖解题思路和求解过程;实验指导是对理论到上机应用全过程进行引导;综合实训提供数据结构思维的实践思路和要点指导。
本章导学——在多年教授该课程的经验基础上,将各章的知识要点进行归纳与总结,巧用实际生活案例,使之易于理解和掌握;本书的特色之一,还在于通过引入新技术手段
数据结构重点、难点解析及考研辅导和不同形式,设计了重难点算法操作全过程的动态演示,使读者可以通过简洁、形象的方式掌握相关知识,提高感兴趣度。动静结合,重难点突出,最大程度地为读者提供方便和支持。这也是本书的独到之处。
习题解析——对需要重点掌握的问题和难以理解的知识点以习题的形式加以巩固,并给出简明扼要的解析;同时,考虑到该课程是计算机及相关专业考研的必考科目,针对全国计算机联考及部分著名高校考研试卷中的题目进行解析,通过解析又进一步体会知识点及应用经验,更好地满足不同目标读者的需求。
实验指导——在数据结构的教学活动中,上机操作能力的培养是一个至关重要的环节,本部分旨在从实验中让学生获得锻炼,对相应数据结构的理论和应用有更深入的理解,本书从实验目的、实验内容及解题思路等方面提供全过程指导。
综合实训——综合实训中案例的设计,旨在体会各类数据结构的应用方向、思路,以及算法设计方法,本部分充分利用流程图这一工具,引导读者首先建立起数据结构及计算机研发应用的逻辑思维方式,对计算机应用能力的提升有较大的实用意义。在综合实训中不仅给出了解决问题的思路,还指出了每个案例要解决的关键问题,力求通过综合实训中的案例使读者的水平切实有大幅提高。
本书的具体特色如下。
(1) 培养逻辑思维,成为教材的真帮手。
本书从建立结构化的数据信息逻辑思维出发,以深入理解数据结构为基础,再进一步掌握应用数据结构的技术和方法的全过程去考虑,在编写时,力求成为教材的真帮手,帮助读者理解数据结构的概念和方法逻辑,帮助读者建立起理论和实践的联系,帮助读者建立起现实世界和数据世界的联系及关联方法,帮助读者找到学习的有效途径,帮助考研读者体会学习的重难点,给开发应用者最简单实用的案例指导。
(2) 内容丰富新颖,适用不同读者。
本书内容涵盖了计算机数据结构中所有的知识点,且通过精心设计,引入案例比喻和动画演示等形式使书的内容丰富新颖。纵向上,从数据的组织结构到对这些结构化数据的操作,包括线性表、栈和队列、串、数组及广义表、树与二叉树、图,也包括查找技术和排序技术等;横向上,每章内容由基本习题到考研习题,由基本知识到应用,由解题思路到分析流程图,由案例提示到问题关键定位,深入浅出,循序渐进,力求使本书不仅满足在校本科生学习及考研、教师教辅需要,也能满足计算机相关专业人员的研发指导等不同需求。
(3) 展示方式多样,形象化趣味性强。
本书各章节中的关键知识点不仅有静态的文字描述,还采用先进的二维码技术,集成链接算法操作演示动画,这种动静结合的组织形式非常有利于激发读者的兴趣,有助于读者积极主动地、无障碍地去跟踪学习数据结构的操作及算法的实现等内容。另外,“一图抵千言”,本书还引入了流程图这一有效工具,尽管这给本书的编写带来了难度,但读者通过这些图示和动画不同形式可以清晰、简捷地理解学习内容,培养学习兴趣,更便于记忆和掌握关键知识点,建立起计算机学科的思维逻辑。
(4) 精心设计,注重能力提升。
结合作者多年的教学经验,鉴于数据结构的抽象性,本书在对知识点进行归纳总结时,会以一段故事或者日常生活中的例子来进行比喻,有助于读者更好地理解它们。书中信息来源广泛,不仅包括了巩固基本知识点的基础习题,还包括了提高水平的计算机联考题,以及部分高校的考研试题。对问题的剖析解答,由易到难,旨在使读者掌握分析问题和解决问题的方法。实验实训,既包括针对每种数据结构基本操作的实验设计,也包括相应数据结构的应用实践训练,旨在有效提升解决实际应用问题和上机动手能力,使读者在掌握基本知识的基础上,提高编写算法的能力。
由于作者水平有限,书稿虽几经修改,仍难免有缺点。欢迎同行专家和读者批评指正,使本书在使用中不断改进、日臻完善。
作者2017年11月
第1章绪论1
1.1本章导学/1
1.1.1基本知识/1
1.1.2重难点分析/3
1.2习题解析/3
1.2.1基础习题解析/3
1.2.2考研习题解析/5
第2章线性表8
2.1本章导学/8
2.1.1基本知识/8
2.1.2重难点分析/12
2.2习题解析/12
2.2.1基础习题解析/12
2.2.1考研习题解析/16
2.3实验指导/23
2.3.1实验目的/23
2.3.2实验内容/23
2.4综合实训/25
2.4.1目的要求/25
2.4.2案例描述/25
第3章栈和队列27
3.1本章导学/27
3.1.1基本知识/27
3.1.2重难点分析/29
3.2习题解析/30
3.2.1基础习题解析/30
3.2.2考研习题解析/33
3.3实验指导/40
数据结构重点、难点解析及考研辅导3.3.1实验目的/40
3.3.2实验内容/40
3.4综合实训/42
3.4.1目的要求/42
3.4.2案例描述/42
第4章串、数组和广义表46
4.1本章导学/46
4.1.1基本知识/46
4.1.2重难点分析/50
4.2习题解析/51
4.2.1基础习题解析/51
4.2.2考研习题解析/53
4.3实验指导/56
4.3.1实验目的/56
4.3.2实验内容/56
4.4综合实训/57
4.4.1目的要求/57
4.4.2案例描述/57
第5章树和二叉树59
5.1本章导学/59
5.1.1基本知识/59
5.1.2重难点分析/66
5.2习题解析/66
5.2.1基础习题解析/66
5.2.2考研习题解析/73
5.3实验指导/84
5.3.1实验目的/84
5.3.2实验内容/85
5.4综合实训/86
5.4.1目的要求/86
5.4.2案例描述/87
第6章图89
6.1本章导学/89
6.1.1基本知识/89
6.1.2重难点分析/95
6.2习题解析/95
6.2.1基础习题解析/95
6.2.2考研习题解析/102
6.3实验指导/117
6.3.1实验目的/117
6.3.2实验内容/117
6.4综合实训/119
6.4.1目的要求/119
6.4.2案例描述/119
第7章查找121
7.1本章导学/121
7.1.1基本知识/121
7.1.2重难点分析/126
7.2习题解析/127
7.2.1基础习题解析/127
7.2.2考研习题解析/136
7.3实验指导/145
7.3.1实验目的/145
7.3.2实验内容/145
7.4综合实训/146
7.4.1目的要求/146
7.4.2案例描述/146
第8章排序148
8.1本章导学/148
8.1.1基本知识/148
8.1.2重难点分析/153
8.2习题解析/153
8.2.1基础习题解析/153
8.2.2考研习题解析/159
8.3实验指导/167
8.3.1实验目的/167
8.3.2实验内容/167
8.4综合实训/168
8.4.1目的要求/168
8.4.2案例描述/169
参考文献170
1. 着重思维方式构建。立足建立起结构化的数据信息逻辑思维,让读者切实深刻理解数据结构技术、方法和应用实质;
2. 借鉴先进技术形象化知识点。对于重难点算法除静态文字描述外,还可通过链接算法操作演示动画来形象感知,更好地激发学习者的兴趣;
3. 给出有效方法指导。引入流程图等工具,从方法论上帮助学习者建立起计算机学科理论和实践的思维逻辑;
4. 多维度面向问题解决方案。对从概念到应用各方面问题的剖析解答,由易到难,重在使读者掌握分析问题和解决问题的方法和能力。
5. 内容全面,从理论到应用,形式丰富新颖,从概念明晰到解决问题思路,调理清晰,循序渐进,适用不同读者。
1. 着重思维方式构建。立足建立起结构化的数据信息逻辑思维,让读者切实深刻理解数据结构技术、方法和应用实质;
2. 借鉴先进技术形象化知识点。对于重难点算法除静态文字描述外,还可通过链接算法操作演示动画来形象感知,更好地激发学习者的兴趣;
3. 给出有效方法指导。引入流程图等工具,从方法论上帮助学习者建立起计算机学科理论和实践的思维逻辑;
4. 多维度面向问题解决方案。对从概念到应用各方面问题的剖析解答,由易到难,重在使读者掌握分析问题和解决问题的方法和能力。
5. 内容全面,从理论到应用,形式丰富新颖,从概念明晰到解决问题思路,调理清晰,循序渐进,适用不同读者。