第1章 绪论
自从**台电子计算机问世以来,计算机科学���到了飞速的发展,与此同时,计算机的应用领域也从*初的科学计算逐步发展到更**的阶段,如图像处理、语音识别、机器翻译、人工智能等多个领域。现在计算机处理的对象不仅是简单的数值或字符,而且带有不同结构的各种数据。因此,要设计一个好的软件,除了要掌握一定的计算机程序设计语言之外,还必须研究各类数据的特性以及数据之间存在的关系。这是因为计算机要加工处理数据,必须能够将数据输入到计算机中,并能够以恰当的方式在计算机中表示并存储起来,还要便于根据需要对数据进行加工和处理,因而当各种数据输入计算机之前,必须先按某种数据的组织.形式将数据组织好,然后考虑以什么样的方式进行存储,这种组织形式和存储方式直接关系到程序对数据的处理能力和处理效率,并影响到问题的解决。
综上所述,可以这样理解,计算机在解决一个问题时,先将问题中的有关对象抽取出来形成数据,并将这些数据组织在一起。为了要合理组织这些数据,就要先找到各个数据之间的逻辑关系,即数据的逻辑结构,从而选择一种合理的组织方式。其次,还要考虑计算机如何存储这些组织好的数据,即数据的物理结构或存储结构。因此,数据结构这门课程就是要解决两个主要的问题:数据的逻辑结构和数据的存储结构。
1.1 什么是数据结构
一般来说,当用计算机解决一个具体问题时,大致都需要经过下面几个步骤:首先要从具体问题中抽象出一个适当的数学模型(或数学公式),然后设计一个描述此数学模型的算法,*后利用合适的程序设计语言来编写程序,进行测试、调整,直至*终得到满意的解答。抽象数学模型的过程实质上是分析问题,从中提取操作的对象并找出这些操作对象之间含有的关系,然后用数学的语言加以描述的过程。事实上,有些问题的求解过程可以通过一定的方程进行一定的运算来获取。例如,求解梁架结构中应力的数学模型为线性方程组;预报人口增长情况的数学模型为微分方程。然而,更多的非数值计算问题却无法用数学方程加以描述。……