📄 8þ¦
字号:
#include<stdio.h>
#include<malloc.h>
#include <stdlib.h>
#define OVERFLOW 0
#define STACKSIZE 50
#define ADD 20
typedef struct BiTNode
{
char data;
struct BiTNode *lchild;
struct BiTNode *rchild;
}*BiTree;
void CreateBiTree(BiTree &T) //先序扩展序列建立二叉树的递归算法
{
char ch;
scanf("%c",&ch);
if (ch=='.')
{
T=NULL;
}
else
{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
{
exit(OVERFLOW);
}
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
int Depth(BiTree T)//递归
{ int dep1,dep2;
if(T==NULL) return(0);
else
{ dep1=Depth(T->lchild);//求左子树的深度
dep2=Depth(T->rchild);//求右子树的深度
if(dep1>dep2) return(dep1+1);//二叉树的深度为"max(左深,右深)+1"
else return(dep2+1);
}
}
void main()
{ BiTree T=NULL;
printf("请输按先序序列输入一串字符,节点数据为字符类型,,当子树为空时,用.来代替\n");
CreateBiTree(T);
if(T){
printf("此二叉树的深度为:");
printf("%d",Depth(T));
printf("\n");
}
else printf("二叉树为空!\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -