今天看了二叉树,看的一脸懵,写了两道题
P4913:二叉树深度
#include <stdio.h>
#include <stdlib.h>
struct hly
{int left;int right;
}tree[1000005];
int hulingyun(int x)
{if(x==0)return 0;return 1+max(hulingyun(tree[x].left),hulingyun(tree[x].right));
}
int max(int a,int b)
{if(a>=b)return a;elsereturn b;
}
int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++){int a,b;scanf("%d %d",&a,&b);tree[i].left=a;tree[i].right=b;}printf("%d",hulingyun(1));return 0;
}
P1305:新二叉树
#include <stdio.h>
#include <stdlib.h>
struct hly
{char left;char right;
}tree[205];
void hulingyun(char x)
{if(x=='*')return;printf("%c",x);hulingyun(tree[x].left);hulingyun(tree[x].right);
}
int main()
{int n;char m;scanf("%d",&n);scanf(" %c",&m);scanf("%c",&tree[m].left);scanf("%c",&tree[m].right);for(int i=2;i<=n;i++){char a;scanf(" %c",&a);scanf("%c",&tree[a].left);scanf("%c",&tree[a].right);}hulingyun(m);return 0;
}