您的位置:首页 > 娱乐 > 八卦 > 深圳网页设计培训中心_宁波男科医院_站内推广方式_微信crm系统软件

深圳网页设计培训中心_宁波男科医院_站内推广方式_微信crm系统软件

2025/1/8 5:11:24 来源:https://blog.csdn.net/lhr056813/article/details/144319107  浏览:    关键词:深圳网页设计培训中心_宁波男科医院_站内推广方式_微信crm系统软件
深圳网页设计培训中心_宁波男科医院_站内推广方式_微信crm系统软件

性质

  1. 在二叉树的第i层上至多有2^{i-1}个结点,至少有1个结点

  2. 深度为k的二叉树至多有2^{k-1}个结点(k≥1),至少有k个结点

  3. 对任何一棵二叉树T,如果其叶子数为n0,度为2的结点数为n2,则n0=n2+1

  4. 具有n个结点的完全二叉树的深度为log_2n+1(向下取整)

  5. 如果对一棵有n个结点的完全二叉树的结点按层序编号(从第一层到第log_2n+1层,每层从左到右),则对任一结点i,有:

(1)如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点i/2(向下取整)

(2)如果2i>n,则结点i无左孩子(结点i为叶子结点),否则其左孩子是结点2i

(3)如果2i+1>n,则结点i无右孩子;否则其右孩子是结点2i+1

存储结构

顺序存储

实现:按满二叉树的结点层次编号,依次存放二叉树的数据元素

#define MAXSIZE 100
Typedef TElemType SqBiTree[MAXSIZE]
SqBiTree bt;

顺序存储的缺点:浪费空间

最坏情况:深度为k的且只有k个节点的单支树需要长度为2^k-1的一维数组

适合于满二叉树和完全二叉树

链式存储

二叉链表:一个数据域和两个指针域,指向左右孩子

typedef struct BiNode{TElemTYpe data;struct BiNode *lchild,*rchild;//左右孩子指针
}BiNode, *BiTree;

在n个结点的二叉链表中,有n+1个空指针域

n个结点共有2n个指针域,除根结点外,每个结点有且仅有一个双亲,所以有n-1个结点的指针域存放指向孩子的指针,剩余n+1个指针为空指针

三叉链表:增加一个指针域指向双亲

typedef struct TriNode{TElemTYpe data;struct TriNode *lchild,*rchild,*parent;//左右孩子指针和双亲指针
}TriNode, *TriTree;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com