java_数据结构
2020-04-07 本文已影响0人
老北瓜
栈
先进后出 , 像压子弹
队列
先进先出 , 像传送带
数组
查询快,增删慢。
因为数组的地址是连续的,可以通过数组索引快速找到某个元素。数组的长度是固定的,想要增加删除一个元素,必须创建一个新数组,把原数组的其余数据复制过来,原数组就会在内存中被销毁。
链表
查询慢,增删慢。
链表中没个节点包含了一个 数据源(数据),两个指针域(一个自己的地址,和下一个节点的地址)
链表中的地址不是连续的,每次查询地址 都必须从头开始查询。链表结构 增加/删除一个元素,对链表的整体结构没有影响,所以增删快。
链表分类 -- >
单向链表: 只有一条链子,不能保证元素的顺序
双向链表 两条链子,有一条链子专门记录元素的顺序,是一个有序的集合。
红黑树
二叉树 , 分支不超过两个
排序树/查找树 。 在二叉树的基础上,元素有大小顺序,左边小,右边大。 类似猜数字,先拦腰砍一半 , 查询速度很快。
平衡树 左右相等
不平衡树 左右不相等
红黑树,趋近于平衡树,查询速度很快,查询叶子节点最大次数和最小次数不能超过2倍, 约束.... ###??????