无根树转有根树的一般方法
2015-11-29 18:25
162 查看
紫书:P352
View Code
测试数据:
8
0 1
0 2
0 3
1 4
1 5
5 6
5 7
1
结果:
1 -1 0 0 1 1 5 5
#include <iostream> #include <vector> #include <cstring> using namespace std; int p[100]; vector<int> G[100]; //邻接表 int n; void read_tree() { int u,v; cin>>n; for(int i=0;i<n-1;i++) { cin>>u>>v; //只是告知边,没有从属关系 G[u].push_back(v); G[v].push_back(u); } } void dfs(int u,int fa) { //使u成为与他相连之边的父节点 for(int i=0;i<G[u].size();i++) { int v=G[u][i]; if(v!=fa) dfs(v,p[v]=u); } } int main() { while(1) { read_tree(); memset(p,0,sizeof(p)); int root; cin>>root; p[root]=-1; dfs(root,-1); for(int i=0;i<=n-1;i++) cout<<p[i]<<" "; cout<<"\n"; } return 0; }
View Code
测试数据:
8
0 1
0 2
0 3
1 4
1 5
5 6
5 7
1
结果:
1 -1 0 0 1 1 5 5
相关文章推荐
- Grunt插件autoprefixer使用指南
- netstat -altp
- Unity3d开发“类三消”游戏
- Avro技术应用_4. 在 Pig 中实现对 Avro 数据的读写
- 什么JSONP
- 部署安装WebPageTest 2.4私有实例
- centos7 python多版本切换
- crontab 每分钟、每小时、每天、每周、每月、每年定时执行
- Java语法基础
- Python多线程初步
- PAT1003
- Crontab定时任务
- EmguCV3.0几个控件的使用
- 初试springWebMVC
- 指针
- 如何在Java中使用注释
- HDU2035---(解题报告)人见人爱A^B
- JavaScript数据类型
- CocoaPods实操
- 面向对象