目录
1、数据结构概述
(1)数据结构是什么?
数据结构是计算机底层存储,组织数据的方式,是指数据之间相互以什么方式排列在一起。数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择。一般情况下,精心选择的数据结构可以带来更高的运行或者是存储效率。
(2)我们需要掌握哪些内容?
- 每种数据结构长什么样子?
- 怎么添加数据?
- 怎么删除数据?
2、常用的数据结构
常用的数据结构主要有 栈, 队列, 数组,链表, 二叉树, 二叉查找树, 平衡二叉树, 红黑树。今天主要学习前四种,后面的等学到再进行补充。
2.1 栈
栈:
- 先进的元素A我们称为栈底元素,后进来的D我们称为栈顶元素。数据进入栈的过程我们称为进栈/压栈,数据从栈出来的过程称为出栈/弹栈。
- 特点:先进后出,后进先出。
2.2 队列
2.3 数组
- 创建一个数组,则在空间中开辟一块连续的空间,空间有地址值比如0x0011。
- 查询元素速度快:通过地址值找到数组,通过索引定位来查询元素。因此查询任意数据耗时都是相同的;
- 删除元素效率低:通过索引删除元素,同时要将后面的每个元素前移,所以比较慢;
- 添加元素效率低:需要先要将添加位置索引后的每个元素后移,再在要添加元素的索引位置添加。
2.4 链表
链表的结点是独立存在的对象,在内存中是不连续的,每个结点都包含数据值和指向下一个结点的地址值。(每个结点的地址值都不是连续的)
(1)链表的每个结点代表的含义:
(2)链表的创建过程(这里指单链表):
有一个头结点,存储自身值和指向下一个结点的地址比如0x0011,下一个结点存储自身数据B,和下一个结点的地址比如0x0039,第3个结点是尾结点,存储自身的数据D。可以看出,结点的空间地址值都是不连续的。
(3)链表的查询比较慢:查询的时候都得从头开始一个一个找。
(4)链表的增删比较快
情况1:链表增加结点
在BD之间增加一个数据C:首先创建一个结点,地址值为0x0056,保存数据值C。只需要将数据B的地址值存储为新增加的结点C的地址值,再将数据C存储的地址值指向下一个数据D即可。因此增加效率很高。
情况2:链表删除元素
删除BD之间的数据C:将数据B对应的下一个数据地址值指向数据D,然后将数据C删除。
3、总结
- 栈: 先进后出,后进先出;
- 队列:先进先出,后进后出;
- 数组:开辟的内存是一块连续的区域;查询快,增删慢;
- 链表:元素是离散的;查询慢,但是在首尾操作还是很快的;增删快。
好啦,今天简单认识了四种数据结构,打工人又要去搬砖啦~明天再继续~~