前言数据结构是计算机及相关专业的核心课程,也是计算机及相关专业硕士研究生入学考试的必考科目,而且是理工专业的热门公选课程。作为程序设计的重要补充和延伸,数据结构所讨论的知识内容、蕴含的技术方法、体现的思维方式,无论是进一步学习计算机专业的其他课程,还是从事计算机领域的各项工作,都有着不可替代的作用。
数据结构课程知识丰富,内容抽象,隐藏在各知识单元的概念和方法较多,贯穿于各知识单元的链表和递归更是加重了学习难度。本书的编写者长期从事数据结构的研究和教学,深切理解学生在学习数据结构过程中遇到的问题和困惑,深入探究掌握数据结构的有效途径和方法,深刻思考数据结构对培养程序设计和计算思维的地位和作用,深度把握课程的教学目标和重点难点,在教学内容和教学设计等方面进行了如下处理。
1. 合理规划教学内容。紧扣《高等学校计算机专业核心课程教学实施方案》和《计算机学科硕士研究生入学考试大纲》,涵盖教学方案及考研大纲要求的全部知识点。
2. 遵循认知规律,理清教学主线。根据学生的认知规律和课程的知识结构,按照从已知到未知的思维进程逐步推进教学内容,梳理和规划了各知识单元及其拓扑结构,设计了清晰的教学主线。知识单元及其拓扑结构如图1所示。
3. 提炼基础知识,适当扩展提高。考虑不同学校教学要求的差异以及不同学生学习需求的差别,一方面本着“够用、实用”的原则,抓牢核心概念,提炼基础性知识,贯彻数据结构课程的基本教学要求;另一方面对某些知识点进行了适当的扩充和提高(图1中带星号部分),这部分内容可用于选讲,也可用于学生自学或课外阅读(教学建议: 目录中带一个星号可用于选讲,带两个星号可用于课外阅读,其他是必讲的基础知识)。数据结构——从概念到Java实现前言
4. 兼顾概念层和实现层。从抽象数据类型的角度将数据结构的实现过程分为抽象层、设计层和实现层,其中抽象层定义数据结构和基本操作集合,设计层是数据结构的存储表示和算法设计,实现层用Java语言实现数据结构,既强调数据结构的基本概念、原理及方法,又注重数据结构的程序实现和实际运用。
5. 展现求解过程,培养计算思维。通过讲思路讲过程讲方法,按照“问题→想法→算法→程序”的模式进行问题求解,采用“阐述基本思想→伪代码描述算法→Java语言实现算法”的模式进行算法设计与实现,这个过程正是计算思维的应用过程。每章通过两个应用实例展示了问题求解过程以及算法设计过程。
6. 明确重点,化解难点。每一章开篇即给出了本章的重点难点,以及各知识点的教学要求,在具体阐述时还有针对性的处理方法。针对数据结构内容抽象的特点,全书设计了大量插图,将抽象内容进行了具体化处理,降低了理解问题的复杂性。
总之,本书在概念的描述、实例的选择、知识的前后衔接、内容的组织结构,以及教学内容的理解、教学目标的实现、教学意图的融入、教学方法的运用等方面进行了系统思考和统筹设计,力图通过本书为读者构建多层次的知识体系。在问题求解层面,以数据表示和数据处理为主线,给出“问题→想法→算法→程序”的思维模式;在算法设计层面,通过伪代码描述算法,强调计算思维的培养;在算法分析层面,理解什么是“好”算法,给出算法分析的基本方法;在存储结构层面,通过存储示意图理解数据表示,再给出存储结构定义;在程序实现层面,给出所有数据结构的Java程序实现以及使用范例;在数据结构和算法的运用层面,通过应用实例理解如何为求解问题设计适当的数据结构,如何基于数据结构设计算法,从而将数据结构、算法和程序设计有机地融合在一起。书中所有代码均在Java 8环境下调试通过。