📄 subsize.c
字号:
#include<stdio.h>
#include<malloc.h>
int **malloc2d(int r,int c)
{
int i;
int **t;
t=(int **)malloc(r*sizeof(int *));
for(i=0;i<r;i++)
t[i]=(int *)malloc(c*sizeof(int));
return t;
}
int size(int **a,int i)
{
int lsize,rsize;
if(a[i][1]==0) lsize=0;
else lsize=size(a,a[i][1]);
if(a[i][2]==0) rsize=0;
else rsize=size(a,a[i][2]);
return lsize+rsize+1;
}
void PreOrder(int size(int **a,int i),int **a,int i)
{
printf("%d ",size(a,i));
if(a[i][1]!=0) PreOrder(size,a,a[i][1]);
if(a[i][2]!=0) PreOrder(size,a,a[i][2]);
}
void main()
{ int n,**a,i,t,l,r,x;
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
scanf("%d",&n);
a=(int **)malloc2d(n+1,3);
for(i=1;i<=n;i++)
{
scanf("%d %d %d",&t,&l,&r);
if(i==1) x=t;
a[t][0]=t;a[t][1]=l;a[t][2]=r;
}
PreOrder(size,a,a[x][0]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -