数据结构:树的总结

树的概念及相关概念

树是非线性的数据结构,是由n个有限集合组成的具有层次关系的集合,它的每个结点有0个或多个子节点,没有父节点的结点成为根结点,每一格非根节点有且仅有一个双亲节点。
相关概念:

  • 结点的度:一个结点含有的子树个数
  • 叶节点:度为0的结点等
树的存储方式

树有很多种表示方法,最常用的是孩子兄弟表示法,例如:

typedef int DataType;
struct Node
{
struct Node* firstChild;//第一个孩子结点
struct Node* nextBrother;//指向下一个兄弟节点
DataType data;
};
二叉树的基本概念以及性质
  • 特点:每个结点最多有2棵子树,即二叉树不存在度大于2的结点;二叉树的子树有左右之分,子树的次序不能颠倒
  • 性质:
    1、根结点层数为1,一棵非空二叉树的第i层最多有2 ^(i-1)(i>0)个结点
    2、 只有根结点 的二叉树的深度为1,则深度为k的二叉树的最大节点数为2^k-1
    3、 对任意一棵二叉树,若琪叶节点的个数为n0,度为2的非叶结点个数为n2,则n0=n2+1
    4、 具有n个结点的完全二叉树的深度为k位log2(n+1)上取整
满二叉树和完全二叉树

满二叉树指一棵二叉树每一层的结点数都达到最大值,即如果一棵二叉树的层数为k,且结点总数为(2^k)-1,它就是满二叉树
完全二叉树指层序遍历,只要遇到结点为空,后面再没有节点,就是完全二叉树,满二叉树是一种特殊的完全二叉树

二叉树的顺序存储与链式存储

二叉树顺序存储使用数组来存储,只适合完全二叉树,现实中使用堆猜使用数组存储
链式存储有两种:二叉链表和三叉链表,一般使用二叉链表。

二叉树的链式存储及相关操作

https://blog.csdn.net/qq_41809901/article/details/96025569

二叉树面试题

见博客:
https://blog.csdn.net/qq_41809901/article/details/96296562

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值