数据结构用递归的算法求树的高度,哪位大佬看看错哪了,实在是找不错误在哪,调试也调不来 头秃 修改完要么有错 要么输完值后不管按什么键他都不会有结果出来。
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
char data;
struct Node * LChild;
struct Node * RChild;
}BiTNode,* BiTree;
void CreateBiTree(BiTree * bt)
{
char ch;
ch=getchar();
if(ch=='.')
* bt=NULL;
else
{
* bt=(BiTree)malloc(sizeof(BiTNode));
(* bt)->data=ch;
CreateBiTree(&((* bt)->LChild));
CreateBiTree(&((* bt)->RChild));
}
}
int PostTreeDepth(BiTree bt)
{
int hl,hr,max;
if(bt!=NULL)
{
hl=PostTreeDepth(bt->LChild);
hr=PostTreeDepth(bt->RChild);
max=hl>hr?hl:hr;
return(max+1);
}
else return(0);
}
int main()
{
int h;
BiTree * bt;
bt=NULL;
CreateBiTree(bt);
h=PostTreeDepth( *bt);
printf("树的高度为%d",h);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
char data;
struct Node * LChild;
struct Node * RChild;
}BiTNode,* BiTree;
void CreateBiTree(BiTree * bt)
{
char ch;
ch=getchar();
if(ch=='.')
* bt=NULL;
else
{
* bt=(BiTree)malloc(sizeof(BiTNode));
(* bt)->data=ch;
CreateBiTree(&((* bt)->LChild));
CreateBiTree(&((* bt)->RChild));
}
}
int PostTreeDepth(BiTree bt)
{
int hl,hr,max;
if(bt!=NULL)
{
hl=PostTreeDepth(bt->LChild);
hr=PostTreeDepth(bt->RChild);
max=hl>hr?hl:hr;
return(max+1);
}
else return(0);
}
int main()
{
int h;
BiTree * bt;
bt=NULL;
CreateBiTree(bt);
h=PostTreeDepth( *bt);
printf("树的高度为%d",h);
return 0;
}