“数据结构”是计算机及相关专业的一门重要的专业基础课,是介于“数学”“计算机硬件”和“计算机软件”之间的一门计算机科学与技术领域的核心课程,同时数据结构技术也被广泛应用于信息科学、系统工程、应用数学以及各种工程技术领域。该课程主要介绍如何合理地组织和表示数据、如何有效地存储和处理数据、如何正确地设计算法及对算法的优劣进行分析和评价。
在数据结构的教材中,对算法的描述采用C语言和C++的较多,而采用Java语言描述的较少。随着软件开发技术的发展,Java语言作为完全面向对象的语言,已成为当前应用开发中使用最广泛的语言之一。因此,采用Java语言描述数据结构会为Java语言编程人员提供更实用的参考。
为了适应一些高校对数据结构Java版的需求,我们在机械工业出版社《数据结构与算法》(第2版)C语言版的基础上编写了本书。本书以“面向应用,易教易学”为目标,并在以下几方面有所改进。
1)章节结构的调整。将线性表、栈和队列、串、数组和广义表等与线性结构相关的内容编写在线性结构一章中,本书按照绪论、算法设计用到的递归技术、线性结构、树结构、图结构、查找技术、排序技术以及扩展应用划分章节,组织教材内容,内容规整,简洁明了。
2)应用性强的内容。将基础性、实用性的软件开发技术写入教材,略去一些理论推导和烦琐的数学证明,同时也删掉了平时讲不到、难度较大或应用性差的一些问题,增加了部分更基础、更常用的或应用性强的内容。
3)问题引入的方式。主要章节的开始采用问题驱动引入,从常识性或典型问题入手,引导读者思考,使读者更快、更自然地进入到内容的学习中。
4)有针对性的示例。在每一章讲解基本知识之后,都列举一些对应的应用问题,给出典型例题的分析与解决,帮助读者理解和掌握本章节的知识点在实践中的运用方法。
5)丰富的配套练习。每章除了理论课教学内容外,还包括练习题、实验题,帮助学生全面掌握所要求的知识点。本书最后还给出实验要求、模拟试卷、部分参考书目和参考网站,为读者提供实验课程的指导和辅助学习的资料。另外,在每一章的结尾有对本章知识点的总结和扩展学习的阐述,既能帮助读者回顾本章的内容,掌握学习重点,又能为有需要进一步提高的读者提供相关的学习索引。
本书由河北大学的罗文劼教授组织并统稿,张小莉教授审稿。其中第1、3章由张小莉和罗文劼共同编写,第4、5、8章由罗文劼编写,第2、6、7章由王苗编写。
在本书的编写过程中,刘宇对Java语言描述算法的规范性给出了有益的建议,石强、苗秀芬、王硕等对此书的编写提出了有益的意见和建议,在此一并表示感谢。
由于编者水平有限,书中难免存在疏漏之处,恳请读者批评指正。
编者