#include"stdio.h"
#include"stdlib.h"
typedef char DataType;
typedef struct Node
{
DataType data;
struct Node *leftChild;
struct Node *rightChild;
}BiTreeNode;
void PrintData(DataType x)
{
printf("%c",x);
}
/*按先序序列建立一棵二叉树*/
void CreatBiTree(BiTreeNode **T)
{
char ch;
scanf("%c",&ch);
if(ch==' ') {*T=NULL;return;}
else
{
if(!(*T=(BiTreeNode*)malloc(sizeof(BiTreeNode)))){printf("Overflow.\n");exit(0);}
(*T)->data =ch;
CreatBiTree(&((*T)->leftChild ));
CreatBiTree(&((*T)->rightChild ));
}
}
int Height(BiTreeNode *bt) /*求二叉树bt的深度*/
{int hl=0,hr=0;
if (bt==NULL) return(0);
else {
hl=Height(bt->leftChild);
hr=Height(bt->rightChild);
if(hl>hr) return (hl+1);
else return(hr+1);}
}
int main(){
BiTreeNode *t;
CreatBiTree(&t);
printf("%d",Height(t));
}
在这里插入代码片
编写计算整个二叉树高度的算法(二叉树的高度也叫二叉树的深度)。
于 2021-12-13 14:52:29 首次发布