计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写程序仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这便是数据结构课程中所学习和研究的内容,也是编写计算机程序的重要基础。由于它对计算机学科起到承前启后的作用,因此,本课程列为计算机等相关专业最重要的专业基础课程。
由于数据结构的原理和算法较抽象,而该课程一般在本科低年级开设,对于只具有计算机程序设计基础知识的初学者,理解和掌握其中的原理就更困难了,特别是在解答数据结构的习题时,往往感到无从下手。对此,作者在多年的教学中感受颇深。本人通过长期的实践、收集与整理,编写了本书,其目的是:通过对习题的解答,使学生充分掌握数据结构的原理以及求解数据结构问题的思路与方法,深化对基本概念的理解,提高分析与解决问题的能力。
本书遵循全国高等学校计算机专业本科数据结构课程的教学大纲的要求,从内容上分为12章:第1章概述,讨论数据结构的基本概念及相关题解;第2章线性表,讨论顺序表和链表的基本概念及相关题解;第3章栈和队列,讨论各种栈和队列的基本概念及相关题解;第4章串,讨论串的基本概念及相关题解;第5章数组和稀疏矩阵,讨论数组和稀疏矩阵的基本概念及相关题解;第6章递归,讨论基本递归设计方法及相关题解;第7章广义表,讨论广义表的基本概念及相关题解;第8章树形结构,讨论树和二叉树的基本概念及相关题解;第9章图,讨论图的基本概念及相关题解;第10章查找,讨论基本查找方法及相关题解;第11章排序,讨论常用的内排序、外排序方法及相关题解;第12章文件,讨论基本文件组织结构及相关题解。
每章由两部分组成,第1部分简要介绍本章的基本内容,第2部分精选了大量的习题,并予以详细解答,涵盖解题思路和求解的完整过程。这些习题中包含一些高校计算机专业招收硕士研究生的数据结构试题(习题题号后面加有“*”号)。
本书在第2版的基础上进行了修订和扩充。习题覆盖面广,既收集了较容易的题目,也收集了难度适中和难度较高的题目。因此,本书可以作为计算机专业本、专科学生数据结构课程的学习参考书,也适于报考计算机专业硕士研究生的考生阅读,还适合于数据结构课程自学者和计算机等级(三级或四级)考试者研习。
在编写本书时,作者力求从方法上提高解题的能力,例如,递归问题是学生较难理解的知识点,但在计算机专业知识中又是经常遇到的问题。为此,作者专门以一章的篇幅(第6章)深入地分析了递归的执行过程,提出了从递归模型到递归设计的步骤。在其他几章中,也采用了类似的解题方法。
由于习题较多,解答上可能存在不准确或不完美之处,内容编排上也可能存在不合理的地方,敬请广大读者批评指正。
