一、树

1.什么是树

树就是n(n>=0)个节点的有限集,n=0时称为空树。

在任意一棵非空树中:(1)有且仅有一个特定的称为根的节点(2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集合,其中每一个集合本身又是一棵树,并且称为根的子树。

一、遍历二叉树

1.什么是遍历树

遍历树是根据一个特定的顺序访问树的的每一个节点,根据访问根结点顺序的不同分为前序、中序、后序遍历三种。

总结:每一种方式遍历二叉树都用到了递归的思想

2.遍历树的三种形式

  • 前序遍历:(1)访问根节点(2)前序遍历左子树(3)前序遍历右子树
  • 中序遍历:(1)中序遍历左子树(2)访问根节点(3)中序遍历右子树
  • 后序遍历:(1)后序遍历左子树(2)后序遍历右子树(3)访问根节点

   总结:中序遍历是最常用的,采用中序遍历出来的树中的所有数据是按照从小到大依次排序的,遍历完之后变成了一个有序数组

二、红黑树

1.红-黑规则

  • 每个节点不是红色就是黑色的
  • 根节点总是黑色的
  • 红色节点的子节点必是黑色的(每条路径上不能有两个连续的红色节点)
  • 从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度)

2.红黑树的两个特征

  • 每个节点都有颜色
  • 在插入和删除一个节点时,要遵循保持这些颜色的不同排列规则(上面的红黑规则)

   注意:新插入的节点的颜色总是红色的,但这样可能会违背红-黑规则,进而可能会破坏这种平衡性,但是红黑树可以修正

3.红黑树三种修正平衡性的方式

  • 改变节点颜色(如果新插入的红色节点违反了规则3,那么我们可以将其父节点改为黑色即可)
  • 右旋(右旋的顶端节点必须要有左子节点,右旋完之后左子节点会到顶端节点,而之前的顶端节点会旋转到右下方其右子节点的位置)
  • 左旋(左旋的顶端节点必须要有右子节点)

   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值