无根树转换为有根树

记录一下代码,回头忘了可以再看

 1 void dfs(int u, int fa) { 
 2     int d = G[u].size();       
 3     for(int i = 0; i < d; ++i) {  
 4         int v = G[u][i];      
 5         if(fa != v){ num[u].push_back(v);dfs(v, p[v] = u);} 
 6     }  
 7 }  
 8     for(int i = 1; i <= n-1; i++) {
 9         int u, v;  
10         cin >> u >> v;  
11         G[u].push_back(v);  
12         G[v].push_back(u);  
13     }  
14     int root=1; 
15     p[root] = -1;   //设定根节点的父亲节点为-1,代表根节点没有父亲节点。  
16     dfs(root, -1); 

 

原文地址:https://www.cnblogs.com/very-beginning/p/13449293.html