os 打印进程树
作者:
ZeroAC
,
2022-03-25 21:27:02
,
所有人可见
,
阅读 224
/*
os小实验
抽象:
打印进程树
输入为n个节点 n-1条边
19
1 4
1 3
1 2
2 6
2 5
3 10
3 9
3 8
3 7
4 10
6 13
6 12
8 18
8 17
10 19
10 999
999 221
999 213
*/
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int h[N],e[N],ne[N],idx;
void add(int a, int b){
e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
void pstree(int u, int w){//w表示目前处于的层数
cout<<u;
for(int i = h[u]; ~i; i = ne[i]){
int j = e[i];
cout<<"\t";
pstree(j,w+1);
cout<<endl;
for(int k = 0; k < w; k++) cout<<"\t";
}
}
int main(){
memset(h,-1,sizeof h);
int n;
cin>>n;
for(int i = 1,a,b; i < n; i++) cin>>a>>b,add(a,b);
pstree(1,0);
return 0;
}