2022Java学习笔记六十一(常见的数据结构)
一、数据结构概念
1、数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的
2、通常情况下,精心选择的数据结构可以带来更多的运行或者存储效率
常见的数据结构:栈、队列、数组、链表、二叉树、二叉查找数、平衡二叉数、红黑数等
二、栈数据结构的执行特点
后进先出,先进后出
三、常见数据结构之队列
先进先出,后进后出
四、数组数据结构
数组是一种查询快,增删慢的模型
1、查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同(元素在内存中是连续存储的)
2、删除效率低:要将原始数据删除,同时后面每个数据前移
3、添加效率极低:添加位置后的每一个数据后移,再添加元素
五、链表
链表中的元素的游离存储的,每个元素节点包含数据值和下一个元素的地址
链表查询慢,无论查询哪个数据都要从头开始找
链表增删相对较快
六、二叉数概念
七、二叉查找数
特点:
1、每一个节点上最多有两个子节点
2、左子数上所有的节点的值都小于根节点的值
3、右子树上所有节点的值都大于根节点的值
提高检索数据的性能
规则:
1、大的靠右
2、小的靠左
3、相等的不进
八、平衡二叉数
不平衡的时候,可以使用左旋右旋解决平衡问题
平衡二叉数是在满足查找二叉数的大小规则下,让树尽可能矮小,以此提高查数据的性能
要求:任意节点的左右两个子树的高度差不超过1,任意节点的左右两个子树都是一个平衡二叉数
九、红黑数
增删改查性能好
规则:
1、每一个节点或是红色的,或是黑色的,根节点必须是黑色
2、如果一个节点没有子节点或者父节点,则该节点相应的指针属性值位Nil,这些Nil视为叶节点,叶节点是黑色的
3、如果一个节点是红色的,那么它的子节点必须是黑色(不能出现两个红色节点相连的情况)
4、对每一节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数据的黑色节点
添加节点:
1、添加节点的颜色,可以是红色的,也可以是黑色的
2、默认用红色效率高
添加三个元素,需要调整一次。添加节点时,默认为红色,效率高