数据结构——树基本概念及其遍历

1.概念

  • 树结构是一种描述非线性层次关系的数据结构
  • 在一个树结构中,有且仅有一个结点没有直接前驱,这个结点就是树的结点。
  • 除根结点外,其余每个结点有且仅有一个直接前驱。
  • 每个结点可以有任意多个直接后继。

2.树的术语

  • 根:有且仅有一个无直接前驱结点的结点
  • 结点的度:结点拥有的子树的数量叫做结点的度
  • 树的度:树内结点的度的最大值
  • 叶子:终端结点
  • 结点的层:从根算起。根为第一层,往下则+1层
  • 树的深度:树的最大层数
  • 森林:去掉根结点所得子数的个数

3.二叉树

什么是二叉树

结点最多只有两个儿子,叫做二叉树

二叉树的重要性质

  • 第i层上最多有2^(i-1)个结点
  • 深度为k的的二叉树最多有2^k - 1个结点
  • N0表示叶结点个数,N2表示度为2的非叶结点个数,那么N0=N2+1

二叉数的存储

  • 顺序存储:一般通过结构数组进行存储
  • 链式存储:存储结构包含结点元素及分别指向左子树和右子树的引用
//链式存储
typedef struct treeNode
{
   
	void* NodeData;        // 元素数据
    struct treeNode* LtreeNode;   //左子树结点引用
    struct treeNode* RtreeNode;   // 右子树结点引用
}TreeNode_T;

二叉树的遍历

  • 先序遍历:1.访问根结点 2.访问左子树 3.访问右子树
    在这里插入图片描述
  • 中序遍历:1.访问左子树 2.访问根结点 3.访问右子树
    在这里插入图片描述
  • 后序遍历:1.访问左子树 2.访问右子树 3.访问根结点
    在这里插入图片描述
  • 层次遍历:从根结点开始,向下一层一层访问&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值