📄 树.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
typedef struct node { int data;
struct node *lchild;
struct node *rchild;
}Tree;
Tree* Creat()
{ Tree *p;
int num;
scanf("%d",&num);
if(num==0) p=NULL;
else
{
p=(Tree *)malloc(sizeof(Tree));
p->data=num;
p->lchild=Creat();
p->rchild=Creat();
}
return p;
}
void PreOrder(Tree *root)
{ Tree *p;
p=root;
if(p)
{ printf("%3d",p->data);
PreOrder(p->lchild);
PreOrder(p->rchild);
}
}
int Number(Tree * p)
{ if( p == NULL)
return 0;
{ return 1+Number(p->lchild) + Number(p->rchild);}
}
int Depth(Tree *p)
{int left,right,depth;
if(p==NULL)
return 0;
else
{left=Depth(p->lchild);
right=Depth(p->rchild);
depth=1+(left>right?left:right);
}
return depth;
}
void main()
{ Tree *ROOT;
int m,n;
printf("输入数据:");
ROOT=Creat();
printf("\n先序遍历:\n");
PreOrder(ROOT);
m=Number(ROOT);
n=Depth(ROOT);
printf("\n叶节点数为%d个,深度为%d个\n",m,n);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -