购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 为什么要学习数据结构

1.数据结构的发展变迁

数据结构在计算机科学与技术专业中是一门综合性的专业基础课。在国外,数据结构作为一门独立的课程是从1968年才开始设立的,但在此之前其有关内容已散见于编译原理及操作系统之中。20世纪60年代中期,美国的一些大学开始开设相关课程,但当时的课程名称并不叫数据结构。

1968年,美国的唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。从20世纪60年代末到70年代初出现了大型程序,软件也相对独立,结构化程序设计成为程序设计方法学的主要内容,人们越来越重视数据结构。

从20世纪70年代中期到80年代,各种版本的数据结构著作相继出现。目前,数据结构的发展并未终结,一方面,面向各专门领域中特殊问题的数据结构得到研究和发展,如多维图形数据结构等;另一方面,从抽象数据类型和面向对象的观点来讨论数据结构已成为一种新的趋势,越来越被人们所重视。

2.数据结构的地位

在我国,数据结构已经不仅仅是计算机专业的核心课程,还是其他非计算机专业的主要选修课程之一。数据结构的研究不仅涉及计算机硬件的研究范围,而且与计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及数据元素在存储器中的分配问题。在研究信息检索时,也必须考虑如何组织数据,以便查找和存取数据元素更为方便。因此,可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。

开发所有计算机系统软件和应用软件都要用到各种类型的数据结构。因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付众多复杂问题的。要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构方面的有关知识。打好“数据结构”这门课程的扎实基础,对于学习计算机专业的其他课程,如操作系统、编译原理、数据库管理系统、软件工程、人工智能等都是十分有益的。

在计算机发展的初期,人们使用计算机的目的主要是处理数值计算问题。当我们使用计算机来解决一个具体问题时,一般需要经过几个步骤,首先要从该具体问题中抽象出一个适当的数学模型;然后设计或选择一个解决此数学模型的算法;最后编出程序进行调试、测试,直至得到最终的解答。例如,求解桥梁结构中应力的数学模型的线性方程组,该方程组可以使用迭代算法来求解。

由于当时所涉及的运算对象是简单的整型、实型或布尔类型数据,所以程序设计者的主要精力是集中于程序设计的技巧上,而无须重视数据结构。随着计算机应用领域的扩大和软、硬件的发展,非数值计算问题显得越来越重要。据统计,当今处理非数值计算性问题占用了90%以上的机器时间。这类问题涉及的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式加以描述。因此,解决这类问题的关键不再是数学分析和计算方法,而是要设计出合适的数据结构,才能有效地解决问题。

学习数据结构的目的是为了了解计算机处理对象的特性,将实际问题中所涉及的处理对象在计算机中表示出来并对它们进行处理。与此同时,通过算法训练来提高学生的思维能力,通过程序设计的技能训练来促进学生的综合应用能力和专业素质的提高。 VDy5tBWVJKpkEjMa7NJAP5vK9hCMyNRMoDvlm3+UOUAnoufG9u9niAkuIJDtCaMH

点击中间区域
呼出菜单
上一章
目录
下一章
×