自我学习总结
数据结构
栈:
先进后出 入栈123 出栈321子弹弹夹
队列:
先进先出 存储123 取出123 过安检
数组:
查询快:地址连续,通过数据索引可以快速查找某个元素
增删慢:长度固定,增加删除元素,必须创建新数组,把源数组的数据复制到新数组(地址值改变)
源数组内存垃圾回收
链表:
查询慢:链表中不是连续的,每次查询元素必须要从头查询
增删快:增加删除元素,对链表整体结构没影响
单链:自己的地址|数据|下一个节点的地址 无序
双链:有序
红黑树:
趋近与平衡树,查询的速度非常快,查询叶子节点最大次数和最小次数不能超过2倍
约束:
1.节点可以是红色的或者黑色的
2.根节点是黑色的
3.叶子节点是黑色的
4.每个红色的节点的子节点都是黑色的
5.任何一个节点到其每一个叶子节点的所有路径上的黑色节点数相同
额外知识:
重写comparator compareTo this.age -o.age 年龄升序 反之降
重写comparator compare o1-o2升 反之降