数据结构概述:
??程序 = 数据结构 + 算法
??算法:一些计算方法,解决问题的流程/步骤(顺序、分支、循环......),通俗的说,算法相当于逻辑,小部分已经被人们发掘出来了(这里的小部分指的是书本上讲的一些经典的解决一类问题的方法),解决问题的一种模式。
??数据结构:将数据按照某一种特定的结构(方法)去保存(数据的存储方法)。
-
几个基本概念
- 数据(data)是对客观事物的符号表示。在计算机科学中是指所有能够输入计算机中并且能够被计算机程序处理的符号的总称。(使用变量名表示实际问题中的数据)。
- 数据元素(data element)是数据的基本单元,在计算机中通常作为一个整体进行考虑和处理。
- 一个数据元素可以由若干个数据项(data item)组成,数据项是数据不可分割的最小单元。
- 数据对象(data object)是性质相同的数据元素的集合。
- 数据分为元数据和用户数据
- 元数据是用来管理用户数据的
- 用户数据问题中本身的一些数据
-
struct student { int num char name[32]; ... }; //元数据 student student class[3]; //数据对象(用户数据) class[0]; //数据元素 class[0].num; //数据项
-
数据结构
- 数据结构:不仅要保存数据,而且还要保存数据和数据之间的关系。
- D (data数据:元数据,用户数据)
- S(structure结构:数据元素之间的关系)
- 根据数据元素之间的不同关系,通常有4类基本结构
- 集合:结构中的数据元素,除了同属于一个集合,没有其他的关系
- 线性结构:数据元素之间的关系是线性的,连成一条直线,一一对应的关系
- 树形结构(层次结构)
- 网状结构(图论)
- 数据结构的形式定义为:数据结构是一个二元组
- Data_Structure = {D, S}; D是数据元素的有限集,S是数据元素之间的关系。
- 定义的关系描述的是数据元素之间的逻辑关系,因此又称数据的逻辑结构。
- 数据在计算机中存储又称为数据的物理结构,又称为存储结构。
- 数据结构主要研究数据元素之间的逻辑关系,至于物理关系是怎么样的,无所谓,只要能够正确的表达逻辑关系就可以了。
- 数据结构:不仅要保存数据,而且还要保存数据和数据之间的关系。