众所周知,20世纪40年代,电子计算机问世的直接原因是为了解决弹道学的计算问题。早期电子计算机的应用范围,几乎只局限于科学和工程计算,其处理的对象也是纯数值性的信息,所以人们把这类计算称为数值计算。
近50年来,电子计算机的发展异常迅猛,这不仅体现在计算机本身运算速度不断提高、信息存储量日益扩大、价格逐步下降等方面,更重要的是,计算机广泛应用于情报检索、企业管理和系统工程等方面,这已远远超出了数值计算的范围,渗透到了人类社会活动的一切领域。与此相对应,计算机的处理对象也从简单的纯数值性信息发展到非数值性的且具有一定结构的信息。因此,再把电子计算机简单地看作进行数值计算的工具,把数据仅理解为纯数值性的信息,就显得太狭隘了。现代计算机科学的观点是把计算机程序处理的一切数值的和非数值的信息,乃至程序都统称为数据(Data),而电子计算机则是加工处理数据(信息)的工具。
处理对象的转变导致系统程序和应用程序的规模越来越大,结构也变得更加复杂,单凭程序设计人员的经验和技巧已难以设计出效率高、可靠性强的程序,数据的表示方法和组织形式已成为影响数据处理效率的关键。因此,这就要求人们对计算机程序所加工的对象进行系统的研究,即研究数据的特性及数据之间存在的关系——数据结构(Data Structure)。
数据结构是随着电子计算机的产生和发展而发展起来的一门计算机课程。数据结构所讨论的有关问题,早先是为解决系统程序设计中的具体技术问题而出现在“编译程序”和“操作系统”中的。数据结构作为一门独立的课程在国外是从1968年开始设立的。在这之前,它的某些内容曾在其他课程如表处理语言中有所阐述。1968年,在美国一些大学计算机系的教学计划中,虽然把“数据结构”规定为一门课程,但对课程的范围没有做明确的规定。当时,数据结构几乎和图论特别是和表、树的理论为同义语。随后,数据结构这个概念扩充到网络、集合代数论、格、关系等方面,从而变成了现在称为“离散结构”的内容。然而,由于数据必须在计算机中进行处理,所以不仅要考虑数据本身的数学性质,还必须考虑数据的存储结构,这就进一步扩大了数据结构的内容。
1968年,美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧第一卷:基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。从20世纪60年代末到70年代初,出现了大型程序,软件也相对独立,程序结构设计成为程序设计方法学的主要内容,人们越来越重视数据结构,认为程序设计的实质是对确定的问题选择一种好的结构,并设计一种好的算法。从20世纪70年代中期到80年代初,各种版本的数据结构著作相继出现。(www.xing528.com)
目前,在我国数据结构也已经不仅是计算机专业教学计划中的必修课程之一,还是其他非计算机专业的主要选修课程之一。
“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,还和计算机软件的研究有着密切的关系,因为无论是编译程序还是操作系统,都涉及数据元素在存储器中的分配问题。当研究信息检索时,也必须考虑如何组织数据,以便查找和存取数据元素。因此,可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。我国从1978年开始,各院校先后开设了数据结构这门课。1982年的全国计算机教育学术讨论会和1983年的全国大专类计算机专业教学工作讨论会都把数据结构确定为计算机类各专业的核心课程之一。这是因为在计算机科学中,数据结构这门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。
值得注意的是,数据结构的发展并未终结,一方面,面向各专门领域中特殊问题的数据结构已得到研究和发展,如多维图形数据结构等;另一方面,从抽象数据类型的观点来讨论数据结构,已成为一种新的趋势,越来越被人们重视。由此可见,数据结构技术正处于迅速发展的阶段。同时,随着电子计算机的发展和更新,新的数据结构也将会不断出现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。