测试样例:
10
R -1
A 0
B 0
C 0
D 1
E 1
F 3
G 6
H 6
K 6
最终程序
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;
typedef struct BiTNode
{
char data;
int parent;
}*Tree,BTree;
Tree buildtree(Tree &tree,int n)
{
int par;
char ch;
tree=new BTree[n];
for(int i=0;i<n;i++)
{
cin>>ch;
tree[i].data=ch;
cin>>par;
tree[i].parent=par;
}
return tree;
}
int deep(Tree tree,int n)
{
int i,j;
int dep;
for(i=0;i<n;i++)
{
dep=0;
for(j=i;j>=0;j=tree[j].parent)
{
dep++;
}
cout<<tree[i].data<<" 的层数是 "<<dep<<endl;
}
}
int main()
{
Tree T;
int n;
cin>>n;
buildtree(T,n);
deep(T, n);
return 0;
}
运行结果