数据结构----树与二叉树

结点的深度是从根结点开始自顶向下逐层累加的。

结点的高度是从叶节点开始自底向上逐层累加的。

树的高度(又称深度)是树中结点的最大层数。

 

树的一些重要性质:

 树中结点数等于所有结点的度数加1

2 为m的树中第i层至多有m^{i-1}个结点

3 高度为h的m叉树至多有(m^{h}-1)/(m-1)个结点

4 具有n个结点的m叉树的最小高度为logM(n(m-1))+1

 

二叉树与度为2的有序树的区别:

1 度为2的树至少有3个结点,而二叉树可以为空

2度为2的树有序树的孩子结点的左右次序是相对于另一孩子而言,而二叉树是确定的

 

几个特殊的二叉树

1 满二叉树:高度为h,含有2^{h}-1个结点的二叉树

2 完全二叉树:高度为h,有n个结点的二叉树,每一个结点序号与满二叉树一一对应时,称之为完全二叉树(不一定满)

特点:

叶子结点只可能在层次最大的两层出现。对于最大层次中的叶子结点,都依次排列在该层的最左边位置上

2 如果有度为1的结点,只可能有一个,且该结点只有左孩子而无右孩子(重要特征)

3按层序排序后,一旦出现某结点(其编号为i)为叶子结点或只有左孩子,则编号大于i的结点均为叶子结点

4如n为奇数,则每个分支都有左右子女;如n为偶数,则编号最大的分支结点只有左子女

 

3二叉排序树:左子树上所有结点的关键字均小于根节点关键字,右子树所有关键字均大于根节点关键字

4平衡二叉树:树上任一结点的左子树和右子树的深度之差不超过1

 

二叉树的性质:(非常重要)

   非空二叉树的叶子结点度数等于度为2的结点数加1,N0=N2+1

 

链式存储结构描述:

typedef struct btnode{
        elemtype data;
        struct btnode *lchild,*rchild;
    
    
}btnode,*btree;

含有n个结点的二叉链表中含有n+1个空链域

 

树和二叉树的转换规则:

每个结点左指针指向它的第一个孩子结点,右指针指向它在树中的相邻兄弟结点,可表示为“左孩子右兄弟”

由于根节点没有兄弟,所以由树转换而得的二叉树没有右子树

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值