二叉树的顺序存储代码
时间: 2023-11-22 11:04:48 浏览: 64
二叉树的顺序存储
二叉树的顺序存储代码如下所示:
```
#define MAXSIZE 100
#define ERROR -1
#define OK 1
#define SIZE 100
typedef struct biTree{
char data[MAXSIZE];
}BITREE,*BITREEPOINTER;
int getDepth(BITREEPOINTER T){
int depth = 0;
if(T){
depth = ceil(log2(T->data[0]));
}
return depth;
}
int createBiTree(BITREEPOINTER *T){
char getChar[SIZE];
int inputLength,i;
printf("'#'表示空结点,请输入你要初始化的二叉树元素字符串(注意范围(1-%d)):",SIZE-2);
fflush(stdin);//清除缓冲区的换行符
fgets(getChar,SIZE,stdin);
if(getChar[strlen(getChar)-1]!='\n') {//判断是否超过范围
printf("输入超过范围!\n");
fflush(stdin);
return ERROR;
}
getChar[strlen(getChar)-1]='\0'; //如果没有超过范围,去掉其中的换行符
inputLength=strlen(getChar);
(*T)->data[0]=inputLength;//存储二叉树链表的元素个数
for(i=1;i<=inputLength;i++) {
(*T)->data[i]=getChar[i-1];
}
fflush(stdin);//清除缓冲区
printf("创建成功!\n");
return OK;
}
```
其中,getDepth函数用于计算二叉树的深度,createBiTree函数用于创建二叉树。
阅读全文