一.4集合 数据结构
4数据结构
4.1 栈,先进后出
4.2队列,先进先出
4.3数据结构-数组
(图库)
查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组通过数组的素引可以快速查找某一个元素。
增删慢:数组的长度是固定的,我们想要增加/删除一个元素必须创建- 个新数组把源数组的数据复制过来。
例:
要把数组中素引是3的元素删除
必须创建一个新的数组长度是源数组的长度-1把源数组的其他元素复制到新数组中
在新数组的地址赋值给变量arr(数组)
源数组会在内存中被销毁(垃圾回收)。
在堆内存中频繁的创建数组复制数组中的元素,销毁数组,效率低下。
4.4链表
(图库)
查询快:链表中心地址不是连续的,每次查询元链表都必须从头开始查询
增删快:链表结构,增加/删除一个元素对链表的整体结构没有影响所,以增删快
单向链表:低表中只有一秦低子.不能保证元素的顺序(存储元素和取出元素的顺序有可能不一 致)
双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序是一个有序的集合
链表中的每一个元素也称之为- 一个节点
一个节点包含了一个数据源(存储数组),两个指针域(存储地址)。
4.5红黑树
趋近与平衡树,查询速度非常快,查询叶子节点的最大次数和最小次数不能超过2倍。
特点
-
结点是红色或黑色。
-
根结点是黑色。
-
所有叶子节点(空结点)都是黑色。
-
每个红色节点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)
-
从任一节点到其每个叶子的所有路径都包含相同数目的黑色结点。