1.因为本课程的算法是用类C语言来描述的(算法的基本概念我们将在下面的内容介绍)。类C语言是一种伪语言,其语法与C语言在很大程度上是相似的。所以我们需要掌握C语言和类C语言是学好数据结构的先决条件,所以事先应该对C语言和类C语言有所了解。
2.下面我来介绍一下本课程的基本内容:
数据结构这门课程主要有以下几个内容:
(1)线形结构——包括线形表、栈、队列和数组等内容
(2)非线形结构——包括树、图等内容
(3)排序
(4)查找
这些内容基本上概括了整个数据结构课程的基本内容。学员们在学习的过程中,要注意比较它们之间的联系和不同点,需要指出的是查找和排序是日常工作中经常遇到的操作,因此在数据结构中我们也专门的章节给学员们加以介绍。
3.我们要了解一下整个数据结构课程讲述的基本步骤,这样我们就可以知道该如何学习书中的每一种数据结构:
(1)逻辑结构——其特点是它独立与计算机的硬件结构的一种抽象的数学拓扑结构
(2)基本运算——即定义在某种逻辑结构上的具体操作。每一种逻辑结构都对应于一个运算的集合。在这里我们仅仅需要考虑的是每种运算的功能,即只关心它“做什么”,而不考虑如何去实现它。
(3)存储结构——也就是逻辑结构在计算机中的具体实现,它是一个依赖与计算机硬件的结构。
(4)运算实现——运算只有和具体的存储结构相结合,才能够得到实现,因此它所关心的问题就是如何去实现某种具体的运算,即让我们知道该“怎么做”。
(5)算法评价——每一种运算实现的不同方法,所对应的时间性能、空间性能都是不同。所以我们需要从这两个角度来考虑和评价我们所选择的运算实现方法的好坏。
以上所列举的几项是每一种数据结构都需要讲述的,而且每一种数据结构的这五个方面都是密切联系的,而且不同数据结构在某一特定方面也有着相互之间的联系。所以我们在学习的过程中,要逐步学会一一加一比较,加以归纳、总结,从而找出它们之间的相同点和不同点。这样有助于加深对整个课程的理解,并且在脑海中逐步形成一个完整的体系。
4.提高解题能力的最佳途径是首先理解教材中介绍的各个算法,这些算法大多数都是经典的。同学学习和理会这些算法的含义和具体实现过程,我们可以归纳总结出一些良好的基本解题思路、方法和技巧。