网站多数关键词,世界上网站做的好的例子,网站目录改版,seo外链网性质 在二叉树的第i层上至多有2^{i-1}个结点,至少有1个结点 深度为k的二叉树至多有2^{k-1}个结点#xff08;k≥1#xff09;#xff0c;至少有k个结点 对任何一棵二叉树T#xff0c;如果其叶子数为n0#xff0c;度为2的结点数为n2#xff0c;则n0n21 具有n个结点的完…性质 在二叉树的第i层上至多有2^{i-1}个结点,至少有1个结点 深度为k的二叉树至多有2^{k-1}个结点k≥1至少有k个结点 对任何一棵二叉树T如果其叶子数为n0度为2的结点数为n2则n0n21 具有n个结点的完全二叉树的深度为log_2n1(向下取整) 如果对一棵有n个结点的完全二叉树的结点按层序编号从第一层到第log_2n1层每层从左到右则对任一结点i有
1如果i1则结点i是二叉树的根无双亲如果i1则其双亲是结点i/2向下取整
2如果2in则结点i无左孩子结点i为叶子结点否则其左孩子是结点2i
3如果2i1n则结点i无右孩子否则其右孩子是结点2i1
存储结构
顺序存储
实现按满二叉树的结点层次编号依次存放二叉树的数据元素
#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个结点的二叉链表中有n1个空指针域
n个结点共有2n个指针域除根结点外每个结点有且仅有一个双亲所以有n-1个结点的指针域存放指向孩子的指针剩余n1个指针为空指针
三叉链表增加一个指针域指向双亲
typedef struct TriNode{TElemTYpe data;struct TriNode *lchild,*rchild,*parent;//左右孩子指针和双亲指针
}TriNode, *TriTree;