给结点分别编号,输入这个无向图的的边,它只有n - 1条边,所以本质上也是树,但是我们还没有确定树的root的结点,下面我们来构造一颗树。

我们用邻接矩阵来存下整个图,这里用C++里的vector这中数据结构,它是可以变长的,所以存下之后,空间复杂度就不是n * n了,而是n。

给出一组数据:

一共8个结点,从0----7编号。我们假定以1为根结点构建树。

边数据如下:

0 1
0 2
0 3
1 4
1 5
5 6

5 7

在邻接矩阵中,他表示为:

0| 1 2 3

1| 0 4 5

2|0

3|0

4|1

5|6 7

6|5

7|5

下面给出代码实现:为了验证正确性,我让它以先序遍历输出了

#include <iostream.h>
#include <vector.h>
const int maxn = 1000;
vector<int> G[maxn];
int p[maxn];
int n;
void read_tree(){int u,v;scanf("%d",&n);for(int i = 1; i <= n - 1; i++){scanf("%d%d",&u,&v);G[u].push_back(v);G[v].push_back(u);}
}
void dfs(int u,int fa){int d = G[u].size();printf("%d ",u);for(int i = 0; i < d; i++){int v = G[u][i];if(v != fa){dfs(v,p[v] = u);}}
}
int main(){int root;while(scanf("%d",&root) != EOF){read_tree();p[root] = -1;dfs(root,-1);}return 0;
}

输出结果为:1 0 2 3 4 5 6 7

结果正确。

2013 04 22 By ACReaper

转载于:https://www.cnblogs.com/sixcoder/archive/2013/04/22/3825990.html

无根树转为有根数(图论) By ACReaper相关推荐

  1. 双连通分量(点-双连通分量边-双连通分量)

    概念: 双连通分量有点双连通分量和边双连通分量两种.若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图. 一个无向图中的每一个极大点(边)双连 ...

  2. 【树形DP】树的重心详解+多组例题详解

    目录 定义: 性质: 算法分析: POJ 1655 Balancing Act(求重心) POJ 3107 Godfather P1364 医院设置(树形DP) 定义: 树的重心也叫树的质心.对于一棵 ...

  3. MPB:西农焦硕组-​土壤微生物响应环境变化的系统发育保守性和环境阈值

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  4. Network POJ-3694

    Network POJ-3694 文章目录 Description 题意: 样例分析: 题解: 代码: Description A network administrator manages a la ...

  5. BZOJ.4337.[BJOI2015]树的同构(树哈希)

    BZOJ 洛谷 \(Description\) 给定\(n\)棵无根树.对每棵树,输出与它同构的树的最小编号. \(n及每棵树的点数\leq 50\). \(Solution\) 对于一棵无根树,它的 ...

  6. oracle 行转列后列名,Oracle 多行转多列,列值转为列名

    前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要导出问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人 然后最终自己写出来了 ...

  7. 电子科技大学 图论期末复习 公式索引

    title: 图论期末考试复习 date: 2020-08-17 09:01:09 tags: 参考资料:<图论及其应用> 高等教育出版社 张先迪 / 李正良 仅用于方便复习公式查阅,公式 ...

  8. 弱连通和强连通_基本图论-连通分量(强/弱联通 割点/边 边/点双)

    前言 网上现存\(60\%\)的文章都有明显的误区,本文章经过多次修改,能保证正确性 本文涉及强连通分量.弱连通分量.割点.割边.边双.点双,属于基本图论范畴 在有着直接关联的基础上又有所不同,本文基 ...

  9. 电子科技大学 图论期末复习 公式快速索引

    title: 图论期末考试复习 date: 2020-08-24 09:01:09 tags: 参考资料:<图论及其应用> 高等教育出版社 张先迪 / 李正良 仅用于复习参考,公式或多有误 ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装配置sublime text 3(Build 3083)
  2. LeetCode Longest Common Prefix
  3. OpenShift 4 之Istio-Tutorial (7) 利用VirtualService的故障注入实现混沌测试Chaos Testing
  4. C++ 之父讨厌比特币
  5. HDU-1863-畅通工程(并查集)
  6. Qt4_组装丰富的积木
  7. Using C++ in Eclipse - Program file not Specified problem
  8. 基于vue3.0全家桶H5模板
  9. 从人体3D建模和测量入手,云之梦要用虚拟试衣解放量体师和服装导购员
  10. 一个计算机台式机的组装方案,组装机电脑配置推荐_台式组装机电脑配置推荐-系统城...
  11. PLC PID调试总结
  12. 用python的xlwings模块实现excel工作表批量隐藏和取消隐藏
  13. linux命令sm,Linux系统命令和使用技巧8则
  14. java中sof是什么意思_SOF是什么意思
  15. 计算机软件的著作权和专利权法律保护资料
  16. Solr单机版安装【实战】
  17. 计算机二级office考试题库操作题,计算机二级考试MSOffice考试题库ppt操作题附答案...
  18. 激动!!!他用脚拆开研究生录取通知书
  19. 基于 shell 的自动邮件任务监测器
  20. 利用Echarts制作地图(一)

热门文章

  1. FPGrowth算法总结复习
  2. Android中使用Handler(消息机制)造成内存泄露的分析和解决
  3. UITableViewCell高亮时其子视图的状态修改
  4. C语言中的结构体,联合,链表和枚举,位域(上)
  5. 谷歌也被逼出局域网了 baidu从此天下无敌
  6. LoadRunner监控局域网内其他服务器系统资源设置
  7. 完美解决tomcat/springboot启动速度相当慢 快死的状态了
  8. java中io与nio复制文件性能对比
  9. shell脚本采用crontab定时备份数据库日志
  10. ubuntu 命令行下查看网页 w3m