无根树转有根树

题目大意:

无根树转有根树

基本思路:

1.输入一个n个节点的无根树;

2.通过dfs将无根树转为有根树

代码如下:

int n;
int p[maxn];
vector<int>gra[maxn];
void read_tree(){
    scanf("%d",&n);
    int u,v;
    for(int i=0;i<n-1;i++){
        scanf("%d%d",&u,&v);
        gra[u].push_back(v);
        gra[v].push_back(u);
    }
    return;
}
void dfs(int u,int fa){
    int sz=gra[u].size();
    for(int i=0;i<sz;i++){
        int v=gra[u][i];
        if(v!=fa){
            p[v]=u;
            dfs(v,u);
        }
    }
    return;
}

 

posted @ 2018-02-08 22:49  愿~得偿所愿,不负时光  阅读(182)  评论(0编辑  收藏  举报