1.6 关于数据结构课程的地位及学习方法
数据结构是计算机理论与技术的重要基石,是计算机科学的核心课程之一。作为计算机专业的基础课程,数据结构作为一门独立课程在国外是从1968年才开始设立的。在这之前,它的某些内容曾在其他课程(如表处理语言)中有所阐述。1968年,在美国一些大学计算机系的教学计划中,虽然把数据结构规定为一门课程,但对课程的范围仍没有明确规定。当时,数据结构几乎是与《图论》(特别是表、树理论)互为同义词。随后,数据结构这个概念被扩充到包括网络、集合代数论、格、关系等方面,从而变成了现在称之为离散数学的内容。然而,由于数据必须在计算机中处理,因此,不仅要考虑数据本身的数学性质,而且还必须考虑数据的存储结构,这就进一步扩大了数据结构的内容。近年来,随着数据库系统的不断发展,在数据结构课程中又增加了文件管理的内容。
1968年,美国的Donald E.Knuth开创了数据结构的最初体系,他所著的《基本算法》(《计算机程序设计艺术》第一卷)是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。从20世纪60年代末到70年代初,出现了大型程序,软件也相对独立,结构化程序设计成为程序设计方法学的主要内容,人们就越来越重视数据结构,认为程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。从20世纪70年代中期到80年代初,各种版本的数据结构著作相继出现。
目前,在我国数据结构已经不仅仅是计算机相关专业的核心课程之一,还是非计算机专业的主要选修课程之一。《数据结构》课程在计算机科学中是一门综合性的专业基础课。《数据结构》不仅仅涉及计算机硬件的研究范围,并且与计算机软件的研究有着密切的关系,《数据结构》课程还是操作系统、数据库原理、编译原理、人工智能、算法设计与分析等课程的基础。《数据结构》的教学目标是培养学生学会分析数据对象的特征,掌握数据的组织方法和计算机表示方法,以便为所涉及的数据选择适当的逻辑结构、存储结构和算法,掌握算法的时间、空间分析技巧,提高分析和解决复杂问题的能力,为计算机专业其他课程的学习打下良好的基础,培养学生良好的计算机科学素养。
《数据结构》课程的学习是一项把实际问题抽象化和复杂程序设计的工程。它要求学生在具备C语言等高级程序设计语言的基础上,掌握把复杂问题抽象成计算机能够解决的离散的数学模型的能力。这需要我们在学习数据结构的过程中,既要强化自己的抽象思维和数据抽象能力,还要不断提高自己的程序设计水平,同时要养成良好的编程风格。这就要求平时要多上机实践、多思考,调试程序,在单步调试的过程中理解算法执行过程,通过上机实践理解抽象的概念、理论,并将其与日常生活实际结合,这样才能真正掌握好数据结构。
本书中的算法均采用C语言描述,所有程序都已在VC++6.0下调试通过。