数据结构基础(栈,队列,数组,链表,树)

栈:后进先出,先进后出

队列:先进先出,后进后出

数组:查询速度快,通过地址值和索引定位,查询任意数据消耗时长相同,在内存中是连续存储的,删除效率低,要将原始数据删除,然后后面的数据前移,添加效率低,添加索引位置的元素,剩下的都需要向前后移动

链表:节点的存储位置(地址)里面存储本身的数据值,和下一个节点的地址值,链表中的节点是独立对象,在内存中是不连续的。查询速度慢,无论查询哪个数据都要从头开始找。链表的增删块。

度:每一个节点的子节点数量

二叉树中,任意节点的度

二叉查找树添加 节点规则:

小的存左边,大的存右边,一样的不存

二叉树的遍历方式

前序遍历:根左右

中序遍历:左根右

后序遍历:左右根

层序遍历:一层一层去遍历

平衡二叉树:

规则:任意节点左右子树高度差不超过1

如何保持平衡:

规则1:左旋

规则2:右旋

触发时机:当添加一个节点之后,该树不再是一颗平衡二叉树

确定支点:从添加的节点开始,不断的往父节点找不平衡的节点

平衡二叉树旋转的四种情况

左左:一次右旋

左右:先局部左旋,再整体右旋

右右:一次左旋

右左: 先局部右旋,再整体左旋

你可能感兴趣的:(Java,数据结构,数据结构,链表)