8þ¦
来自「1、猴子选大王 2、约瑟夫环 3、迷宫求解 4、回文游戏 5、地图四染色」· 代码 · 共 60 行
TXT
60 行
#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 + =
减小字号Ctrl + -
显示快捷键?