本书是为非计算机专业的学生学习“数据结构”课程而编写的。本书的起点很低,适用的读者面很广。书中对每一种常用的数据结构都没有从抽象的定义出发,也没有涉及到基本理论与计算机的专业知识。在介绍一种数据结构时,总是从实例出发,通过对实例的分析、讲解来介绍数据结构的基本概念,总结出每一种数据结构的特点及其应用。在本书中,使用一种最简单的描述语言来描述对数据结构的运算,同时为了方便学过C语言的读者,对每一个算法也都给出了C语言的描述。如果读者没有学过C语言,可以不看C语言的描述,也可以通过阅读用C语言描述的算法顺便学习C语言。本书强调实用性。书中所有的算法都用C语言编程调试通过。本书共分9章。第1章从两个实例入手,介绍了数据结构的基本概念,讨论了算法方面的考虑,并给出了本书主要使用的一种算法描述语言。第2章介绍了一般的线性表、栈、队列等最基本的数据结构,并讨论了这些在顺序存储结构下的主要运算,介绍了栈与队列的主要应用;最后还讨论了字符串匹配的问题。第3章介绍了线性表的链式存储结构及其运算,并主要讨论了线性链表在多项式运算中的应用。第4章介绍了数组的顺序存储结构、规则矩阵的压缩以及稀疏矩阵的三列二维数组表示与十字链表表示。第5章介绍了树与二叉树的基本概念,主要讨论了二叉树的性质、二叉树的存储结构及其二叉树的遍历,最后还介绍了穿线二叉树的概念、表达式线性化的过程、最优二叉树用于编码等问题。第6章简要介绍了图的基本概念、图的存储方式、图的两种主要遍历方法,最后讨论了最短距离问题的求解。第7章介绍了工程中常用的查找方法,包括顺序查找、对分查找、分块查找、二叉排序树查找以及多层索引树查找等。第8章介绍了Hash表的基本概念,重点介绍了几种常用的Hash表。第9章介绍了各种排序的方法,求解了拓扑分类的问题。本书通俗易懂、实例丰富,所有的算法均给出了C语言的描述,并且每章都附有一定数量的习题。本书可作为非计算机专业的学生学习数据结构的教材,也可作为自学教材或各类培训班的教材。