【学习记录】数据结构 20200330

573 阅读4分钟

数据结构

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合用计算机存储、组织数据的方式。数据结构分别为逻辑结构、(存储)物理结构数据的运算三个部分。 常见的数据结构有:队列,树,堆,数组,栈,链表,图,散列表等。

数据结构核心名词解释

数据-数据对象-数据元素-数据项

  • 数据 是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
  • 数据元素是组成数据的,具有一定意义的基本单位,在计算机中通常作为整体进行处理。
  • 数据项是组成数据元素的,具有意义的属性项,一个数据元素可以有多个数据项组成。
  • 数据对象是性质相同的数据元素的集合,是数据的子集。

举例:特训营所有班级的学生信息就是一组数据;其中特训营VIP7班的学生信息是一个数据对象;7班的每一位同学都是一个数据元素;每一个同学的各个信息例如:身高、年龄、性别、体重就是数据项

逻辑结构与物理结构

逻辑结构

数据的逻辑结构是反应的是数据之间的关系。

说简单点,逻辑结构就是事物之间的关系,来源于客观世界,例如上面所举的例子中逻辑教育机构中 班级-学生 关系就是一棵树、公司的上下级关系也是一棵树。

数据的逻辑结构主要有:

集合结构

集合结构各个数据之间没有关系,彼此无序,一般不做研究。

线性结构

线性结构是有序的结构,数据间关系是一对一的。常见的线性结构有栈、队列、数组、字符串、链表。

非线性结构

树形结构

树形结构 数据间的关系是一对多的。常见的树形结构有二叉树、红黑树等。

图形结构

图形结构 数据间的关系是多对多的。常见的图形结构例如:互联网中各个计算机之间的连接关系就是图形结构。

物理结构

数据的逻辑结构再复杂都需要存储在计算机中,数据的物理结构就是数据存储在计算机中的形式,通常有四种顺序存储,链式存储,散列,索引。

物理结构就是表示方法,我们需要将千奇百怪的逻辑结构记录到计算机中以便于对数据进行处理。所以可以说:逻辑结构就是客观现象,物理结构是记录现象的手法

顺序存储

顺序存储在存储时,开辟一段连续的内存空间来存储数据。

在顺序存储时,需要预先开辟空间以便数据的记录新的数据。所以在空间的利用率上是有浪费的。连续的空间地址使得我们可以使用下标快速的访问每个数据,同时连续的空间要求我们在插入或者删除数据时需要对操作元素的后续元素进行移位,以保证存储的顺序。

链式存储

链式存储在存储地址不连续,依赖于其他手法来记录元素间的关系。

在链式存储时,数据之间的空间地址是不规则的,所以需要额外的空间来记录数据之间的关系,也无法快捷的读取某个特定的数据,但因为数据间的关系是自行维护的,所以在插入和删除的时候只需要操作少量元素即可完成。

总结:
顺序存储犹如一家旅馆,建好房间等待数据加入,房间一定在同一楼层门牌号连续,每当加/删一个房间时需要调整后续所有房间的房间号保证连续;同时会浪费,因为不是每个房间都会住人。

链式存储也是一家旅馆,但是房间不必一开始就建好,来一个人建一个房间,房间的位置也不一定,每一间房里有一条信息记录着下一间房位置。每当加/删一个房间的时候,只需要修改相关房间内的信息就好了。


思考:图形结构数据如何存储?
答:定义节点包含【数据域,关系域】,其中数据域用来存储该点的实际数据,关系域记录所有和本节点相连的节点。