递归输出就行了
#include<bits/stdc++.h> using namespace std; struct tree{ int dot; string s; }t[1020]; vector<int>v[1020]; void print(int x) { for(int i=0;i<v[x].size();i++) { for(int j=1;j<=t[v[x][i]].dot;j++) printf("."); cout<<t[v[x][i]].s<<endl; print(v[x][i]); } } int main() { int n,x; scanf("%d",&n); t[0].dot=-1; for(int i=1;i<=n;i++) { scanf("%d",&x); cin>>t[i].s; v[x].push_back(i); t[i].dot=t[x].dot+1; } print(0); return 0; }
时间: 2024-10-14 19:29:12