数据结构概述
# 基本概念和术语
# 1. 数据
数据:是描述客观事物的符号,是计算机中可操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
数据不仅仅包括整型,浮点型等数值类型,还包括字符及声音、图像、视频等非数值类型。 数据具有两个前提:
- 可以输入到计算机中
- 能被计算机程序处理
# 2. 数据元素
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
比如:在人类中,人就是数据元素。
# 3. 数据项
数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位
比如:人这样的数据元素,可以有姓名、性别、年龄等数据项。
# 4. 数据对象
数据对象:是性质相同的数据元素的集合,是数据的子集。
什么是性质相同?是指数据元素具有相同的数量和类型的数据项。
# 5. 本人对这四个概念的理解
假设有两张表,A表为人员表,B表为课程表

这两张表就是数据。 而单独的一张表就称为数据对象,即人员表是一个数据对象,课程表也是一个数据对象。
而每张表中的每一行就称为数据元素。
而姓名,性别,身高,课程代号,课程名就称为数据项。
# 6. 数据结构
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成
在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。
按照视点的不同,我们把数据结构分为逻辑结构和物理结构。
# 数据的逻辑结构
逻辑结构是指数据对象中数据元素之间的相互关系。
# 1. 集合结构
集合结构中的数据元素同属于一个集合,他们之间是并列的关系,除此之外没有其他关系
如下图,可以很好的表示集合结构中的元素之间的关系:

# 2. 线性结构
线性结构中的元素存在一对一的相互关系。
如下图,可以很好的表示线性结构中的元素之间的关系:

# 3. 树形结构
树形结构中的元素存在一对多的相互关系。
如下图,可以很好的表示树形结构中的元素之间的关系:

# 4. 图形结构
图形结构中的元素存在多对多的相互关系。
如下图,可以很好的表示图形结构中的元素之间的关系:

# 数据的物理结构(存储结构)
物理结构是指数据的逻辑结构在计算机中的存储形式
# 1. 顺序存储结构
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
数组就是顺序存储结构的典型代表。如下图所示:

# 2. 链式存储结构
链式存储结构:是把数据元素存放在内存中的任意存储单元里,也就是可以把数据存放在内存的各个位置。这些数据在内存中的地址可以是连续的,也可以是不连续的。
和顺序存储结构不同的是,数据元素的存储关系并不能反映其逻辑关系,链式存储结构的数据元素之间是通过指针来连接的,我们可以通使用指针来找到某个数据元素的位置,然后对这个数据元素进行一些操作。如下图:
