数据结构的起源
由于最初涉及的操作对象是简单的整数、实数或布尔数据,因此程序员的主要精力集中在编程技巧上,无需关注数据结构。随着计算机应用领域的扩大和软硬件的发展,非数值计算问题变得越来越重要。
据统计,当今机器 90% 以上的时间都用于处理非数值计算问题。
这类问题涉及的数据结构比较复杂,数据元素之间的关系一般不能用数学方程来描述。因此,解决此类问题的关键不再是数学分析和计算方法,而是设计合适的数据结构。
所以,数据结构是一门研究非数值计算编程问题中的操作对象,以及它们与操作等相关问题的关系的学科。
1968年,美国DonaldEKnuth教授在他所著的《计算机程序设计艺术》第一卷中系统地解释了数据的逻辑结构、存储结构和操作,并开创了“数据结构”课程结构。同年,数据结构作为一门独立课程开始出现在计算机科学学位课程中。
数据结构是一门介于数学、计算机硬件、计算机软件、逻辑等学科之间的综合性学科。它是计算机学科的核心课程。是编译系统、操作系统、数据库等课程的设计与实现以及大型应用程序的基础。
1970年代,大规模计算机程序出现,软件开始相对独立,结构化程序设计成为程序设计方法论的主要内容。
编程的本质是为实际问题设计/选择一个好的数据结构和一个好的算法。
一个好的算法在很大程度上取决于描述实际问题的数据结构。
著名的瑞士计算机科学家 N.Wirth 教授曾提出:
程序设计=数据结构+算法
数据结构的基本概念
俗话说“聪明的女人不能做饭没有米饭”。数据结构是一门研究数据的学科,所以这里的“米”就是数据。
数据不仅包括整数、字符类型、浮点类型等数字类型,还包括字符、图像、声音、视频等非数字类型。
数据元素:比如我们要调查牲畜,牛、羊、马、狗、猪等都是牲畜数据元素。
数据项:例如一个人的数据元素可以有眼睛、耳朵、鼻子、嘴巴和手等数据项,也可以有姓名、年龄、性别、出生日期、出生地址等数据项,和电话号码。要使用哪些数据项取决于您制作的程序。
数据:描述客观事实的符号,可以被计算机识别、操作和输入的符号集合,是信息的载体
数据项:一个数据元素可以由若干个数据项组成,构成一个数据元素的最小单位
数据元素:数据的基本单位,通常作为一个整体来考虑和处理
数据结构:相互之间具有一种或多种特定关系的数据元素的组合