前言 党的二十大报告指出: 教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。 数据结构和算法是计算机科学的核心领域,是计算机程序的基础。正确、恰当地使用数据结构和相应的算法决定了程序的性能和效率。数据结构和算法一直是计算机科学与技术、软件工程等专业的一门重要的必修课程。 本书面向有一定Java语言基础的读者,重点讲解重要的数据结构和相关算法以及重要的基础算法和经典算法思想。全书共14章,分别是数据结构概述、算法与复杂度、递归算法、数组与Arrays类、链表与LinkedList类、顺序表与ArrayList类、栈与Stack类、队列与ArrayDeque类、二叉树与TreeSet类、散列表与HashMap类、集合与HashSet类、常用算法与Collections类、图论和经典算法思想。 本书具有以下特色。 1. 注重夯实基础 本书注重讲解每种数据结构的特点,并结合实例讲解怎样正确地使用相应的数据结构和算法,特别强调分析基础算法的特点,以便读者透彻理解和正确使用这些基础算法。 2. 关注实用性 数据结构和算法与计算机科学紧密关联,常用于解决现实中的问题,本书注重结合一些经典问题和实际问题,使读者在学习数据结构和算法后能加深对实际问题的了解。 3. 强调培养能力 本书强调学习数据结构和算法课程的重要性与意义不仅是学习数据结构和算法本身,还应该注重训练、提高读者的编程能力。本书的很多实例特别强调怎样正确地使用相应的数据结构和算法解决问题,也精选了一些经典和实用性强的算法思想,并结合一些经典的问题体现这些算法思想的精髓,有利于帮助读者掌握如何设计和实现高效、优秀的算法,提高解决实际问题的能力。 4. 体现语言特色 本书特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。全书提供了138个实例、236道习题,实例中的代码都是用Java编写的。所有的实例都有详细的解释,都是可以运行的,同时也给出了运行效果图,这非常有利于读者理解代码、提高编程能力。 本书以中国美丽的二十四节气作为开始,以中国远古神话历史时代的河图洛书记载的、被誉为“宇宙魔方”的九宫格为结尾,其内容也是编者多年从事Java程序设计课程教学和学习、编写程序的经验结晶。本书的全部实例由编者编写,并在JDK 17环境下调试完成(JDK版本不能低于JDK 11)。 为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、电子教案、程序源码、在线作业和习题答案。 资源下载提示 课件等资源: 扫描封底的“图书资源”二维码,在公众号“书圈”下载。 素材(源码)等资源: 扫描目录上方的二维码下载。 在线自测题: 扫描封底的作业系统二维码,再扫描自测题二维码在线做题及查看答案。 读者也可以关注编者的教学辅助公众号“Java教学与小提琴耿祥义”获得有关资源。 本书的实例代码及相关内容仅供读者学习使用,不得以任何方式抄袭出版。 希望本书能对读者学习数据结构和算法有所帮助,并恳请读者批评指正。 编者 2024年8月