什么是二叉树
- 在数据结构中二叉树是一种特殊的树形结构. 二叉树的特点是每个节点有且最多有两个节点
二叉树 中的各种概念

- 我们称A为B C结点的双亲
- B为A的左子树 C为A的右子树
- BC称为兄弟结点
几种不同的二叉树

二叉树存储
顺序存储(顺序存储)
#define OK 1
#define FALSE 0
typedef int sqBiTree[MAXSIZE];
//定义一个结构体 显示层 内容
typedef struct {
int level;//层
int order;//内容
} Position;
//初始化空的二叉树
void InitBiTree(sqBiTree T){
for (int i = 0; i < MAXSIZE; i++) {
T[i] = 0;
}
};
//构建一个二叉树 1 2 3 4 5 6 7 8 9 10 (满二叉树)
/*
1 -->1
2 3 -->2
4 5 6 7 -->3
8 9 10 -->4
1 2 3 4 5 6 7 8 9 10 Nil Nil Nil
*/
int CreactBiTree(sqBiTree T){
int i = 0;
for (i = 0 ; i < 10; i++) {
T[i] = i+1;
}
return OK;
}
//判断二叉树是否为空
int BiTreeEmpty(sqBiTree T){
if (T[0] == 0) {
return OK;
}
return FALSE;
}
//获取二叉树的深度
int BiTreeDepth(sqBiTree T){
//找到最后一个不为空的结点
int i;
for (i = MAXSIZE -1 ; i>0; i--) {
if (T[i] != 0) {
break;
}
}
int j = -1;
do{
j++;
}while (pow(2, j) <= i);
printf("树的深度是%d",j);
return j;
}