永发信息网

实现二叉树遍历的递归算法(求二叉树的节点总数,高度)

答案:1  悬赏:40  手机版
解决时间 2021-01-03 17:56
实现二叉树遍历的递归算法(求二叉树的节点总数,高度)
最佳答案
#include<stdlib.h>
#include<stdio.h>
#define MAXSIZE 100
typedef char ElemType;

typedef struct bonde
{
ElemType data;
struct bonde *lchild,*rchild;
}BTree;
typedef struct
{
BTree *data[MAXSIZE];
int top;
}Stack;

BTree *CreateBTree();
void porder(BTree *T);
int leafs(BTree *T);
int depth(BTree *T);
void main()//主函数
{
BTree *b;
int m,n;
printf("Create a tree....\n\n");
b=(BTree *)malloc(sizeof(int));
b=CreateBTree();
printf("\n");
porder(b);
m=leafs(b);
printf("\nthe tree's leafs:%d\n",m);
n=depth(b);
printf("\n\nthe tree's heigh:%d\n",n);
}
void StackInit(Stack *s)
{
s->top=-1;
}
int StackEmpty(Stack s)
{
if(s.top==-1)
return 1;
else
return 0;
}

int push(Stack *s,BTree *e)
{
if(s->top==MAXSIZE-1)
return 0;
else
{
(s->top)++;
s->data[s->top]=e;
return 1;
}
}
BTree *pop(Stack *s)
{
BTree *e;
if(s->top==-1)
return NULL;
else
{
e=s->data[(s->top)--];
return e;
}
}
BTree * CreateBTree()//建树过程
{
char ch;
BTree *b;
ch = getchar();
if(ch == '@')
{
b = NULL;
}
else
{
if(!(b = (BTree *)malloc(sizeof(BTree)))) exit(-1);

b->lchild = CreateBTree();
b->data=ch;
printf("%5c",p->data);
b->rchild = CreateBTree();
}
return b;
}

void porder(BTree *T)//先序遍历该树并输出
{
Stack s;
StackInit(&s);

while (t!=NULL||!StackEmpty(s))
{
if(t!=NULL)
{
printf("%c ",t->data);
push(&s,t);
t=t->lchild;
}

else
{
t=pop(&s);
t=t->rchild;
}

}
}
int leafs(BTree *T)、、求节点总数
{
int num1,num2;
if(T==NULL)
return 0;
else
if(T->lchild==NULL && T->rchild==NULL)
return 1;
else
{
num1=leafs(T->lchild);
num2=leafs(T->rchild);
return(num1+num2);
}
}
int depth(BTree *T)//求高度
{
int dep1,dep2;
if(T==NULL)
return 0;
else
{
dep1=depth(T->lchild);
dep2=depth(T->rchild);
if(dep1>dep2)
return(dep1+1);
else
return(dep2+1);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
南安市卫生局地址在哪?我要去那里办事
念完准提咒用不用回向/念完准提咒用不用回向
下列物质属于天然纤维的是A.玻璃B.不锈钢C.棉
按键精灵怎么用在手机游戏上
月晕而风,础润而雨:天象与气象阅读答案
汽车上的电子防盗报警装置,在汽车被撬开时能
.---Was the manager angry with you when he
雪中送炭炭的意思
泉州市卫生局甲级卫生所办公地址在什么地方?
不知道为什么电脑只能打开网页了,所有的软件
永春县卫生局在什么地方啊,我要处理点事
小脚趾甲分成两瓣是汉人还是满人
单选题发展中国家农业发展较快,机械化水平较
单选题一个长方体的长、宽、高分别是(2x-1)、
音频PA是什么意思?
推荐资讯
公元前202年,刘邦建立汉朝,定都于A.咸阳B.
移民搬迁房成危房能享受危房改造政策吗
新建县房地产管理局地址有知道的么?有点事想
女性最近小便发黄有很大异味什么原因
请问,英雄无敌5安装完免CD补丁以后无法进行战
灰姑娘的大脚姐姐叫啥名字?
能不能推荐长篇的虐心,悲伤的小说,古言,现
九拍音乐艺术中心地址有知道的么?有点事想过
泰迪狗狗几天洗一次澡
葵阳派出所地址在什么地方?想过去办事
闯五笔怎么打
这个世界刻薄得太公允,我只想做那一个例外。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?