数据结构-二叉树

二叉树及二叉树的操作程序


***基础知识点:

树的概念:由n个节点组成的有限集,有一个根结点,其它的节点只有一个前驱结点,但可以有多个后驱节点
节点的度:节点的子节点个数
树的度:子节点最多的节点的度
树的深度:树的层数
森林:n个互不相交的树的集合


***重要知识点:

二叉树:每个节点的度不大于2,且子节点的位置不可更改
满二叉树:除叶子节点外所有节点的度均为2。(在不加层数的前提下,无法增加一个子节点)
满二叉树的特性:
1.第k层的节点个数:2ˆ(k-1)个
2.k层的全部节点:2ˆk-1个
完全二叉树:满二叉树的基础上从右至左,从下至上删除n个节点的二叉树。
完全二叉树的特性:
1.满二叉树一定是完全二叉树
2.完全二叉树不一定是满二叉树
3.完全二叉树的叶子节点只能在最后一层和倒数第二层的最右边
二叉树的遍历:
前序遍历:根->左子树->右子树 \
中序遍历:左子树->根->右子树 - 深度遍历
后序遍历:左子树->右子树->根 /
层序遍历:逐层从上至下,从左至右 - 广度遍历
二叉树的遍历特性:
1.已知前序遍历和中序遍历,可唯一确定一个二叉树
2.已知后序遍历和中序遍历,可唯一确定一个二叉树

-示例:


前序遍历:ABDGECF

中序遍历:GDBEACF

后序遍历:GDEBFCA




***代码示例:

//以下函数中交互的协议
typedef struct BinTree
{
   
	char Data;			//当前节点数据
	struct BinTree *pL;	//左字节点的地址
	struct BinTree *pR;	//右子节点的地址
}BTNode;
创建一个二叉树
char tree[]={
   "ABDG###E##C#F##"};	//
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值