本文主要是介绍数据结构基础(栈,队列,数组,链表,树),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
栈:后进先出,先进后出
队列:先进先出,后进后出
数组:查询速度快,通过地址值和索引定位,查询任意数据消耗时长相同,在内存中是连续存储的,删除效率低,要将原始数据删除,然后后面的数据前移,添加效率低,添加索引位置的元素,剩下的都需要向前后移动
链表:节点的存储位置(地址)里面存储本身的数据值,和下一个节点的地址值,链表中的节点是独立对象,在内存中是不连续的。查询速度慢,无论查询哪个数据都要从头开始找。链表的增删块。
树
度:每一个节点的子节点数量
二叉树中,任意节点的度
二叉查找树添加 节点规则:
小的存左边,大的存右边,一样的不存
二叉树的遍历方式
前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
层序遍历:一层一层去遍历
平衡二叉树:
规则:任意节点左右子树高度差不超过1
如何保持平衡:
规则1:左旋
规则2:右旋
触发时机:当添加一个节点之后,该树不再是一颗平衡二叉树
确定支点:从添加的节点开始,不断的往父节点找不平衡的节点
平衡二叉树旋转的四种情况
左左:一次右旋
左右:先局部左旋,再整体右旋
右右:一次左旋
右左: 先局部右旋,再整体左旋
这篇关于数据结构基础(栈,队列,数组,链表,树)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!