题目
设计算法,判断无向图G是否是一棵树。
分析实现
对于一个无向图,判断它是否为一棵树需要满足两点条件:
- 从根结点可达其余所有结点
- 无环
对于第一点,通过BFS/DFS进行遍历并记录结点的访问情况就可以得出;
对于第二点,则需要在遍历的同时检查该结点的“子结点”(非“父结点”的邻居)是否都只会访问到一次。为实现这一点,还需要引入parents数组来记录图中每个结点的“父结点”。
具体实现如下(本文的实现为基于邻接矩阵存储方式的图):
// 判断图G是否是树
bool isTree(Graph& G, int v){
vector<bool> visited(G.vexnum, false);
visited[v] = true;
queue<

最低0.47元/天 解锁文章
8727

被折叠的 条评论
为什么被折叠?



