【数据结构和算法】--树(二叉树)

在这里插入图片描述

一、基本概念

空树:如果集合本身为空,那么构成的树就被称为空树。空树中没有结点。
结点的度:某个结点有多少分支。
树的深度(高度):树中结点所在的最大的层次。

二、二叉树

二叉树满足条件

本身是有序树;
树中包含的各个节点度不超过2,只能是0,1,2。

二叉树性质

第i层最多2i-1 个结点;
度为0的结点数n0、度为1的结点数n1、度为2的结点数n2,那么数的总结点数=n0+n1+n2
二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1。

顺序存储结构
使用数组存储,只适合完全二叉树
链式存储结构
节点结构由 3 部分构成:
指向左孩子节点的指针(Lchild);
节点存储的数据(data);
指向右孩子节点的指针(Rchild);

遍历分类
前序遍历:若二叉树为空,则空操作返回,否则先访问根节点,再前序遍历左子树,再后序遍历右子树。【中左右】
中序遍历:若二叉树为空,则空操作返回,否则先从根节点开始(注意不是先访问根节点),再中序遍历左子树,然后是访问根节点,再中序遍历右子树。【左中右】
后序遍历:若二叉树为空,则空操作返回,否则先从根节点开始(注意不是先访问根节点),再中序遍历左子树,再中序遍历右子树,然后是访问根节点。【左右中】

三、二叉树延伸和应用

1、满二叉树、完全二叉树

如果二叉树中除了叶子结点,每个结点的度都为2,则此二叉树称为满二叉树

如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树

2、二叉搜索树/二叉查找树/二叉排序树

一般性二叉搜索树采用的是链表结构。比较适合添加、查找、删除。【后续代码介绍

3、平衡二叉树

一般的二叉树,可能树结构左子树和右子树高度差很大,从而有平衡二叉树【就是防止二叉树变成链表】。

4、平衡二叉树—红黑树

红黑树就是平衡二叉树的一种,后续介绍。

5、完全二叉树–二叉堆

后续介绍二叉堆的具体思想和使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamBoy_W.W.Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值