入门经典 无根树转化为有根树

来源:互联网 发布:淘宝无线地址转换 编辑:程序博客网 时间:2024/05/09 08:43

无根树 转化为有根

vector[] 记录节点的子节点

int[] ->p p[i]=a 表示 i的父节点为a

#include <iostream>#include <vector>using namespace std;int p[100],n;vector<int> v[100];void readtree(){    int a1,a2;    cin>>n;    for(int i=0;i<n;++i)    {        cin>>a1>>a2;        v[a1].push_back(a2);        v[a2].push_back(a1);    }}void bfs(int son,int fa){    for(int i=0;i<v[son].size();++i)    {        if(v[son][i]!=fa)            bfs(v[son][i],p[v[son][i]]=son);    }}int main(){    readtree();    p[1]=-1;    bfs(1,-1);    for(int i=0;i<=n;++i)        cout<<p[i]<<" ";    return 0;}


0 0
原创粉丝点击