/*

* CC.h

*

* Created on: 2014年6月3日

* Author: zhongchao

* 计算无向图中的连通分量

*/

#ifndef _CC_

#define _CC_

#include "Graph.h"

class CC

{

private:

bool* mark;

int* _id;

int num;

Graph* _graph;

hash_set nodes;

public:

CC(Graph* graph, int n);

~CC();

bool connected(int a, int b); //节点a和b是否在同一连同子图中

int count();

int id(int a); //节点a所属于的连同子图的索引

void dfs(Graph* graph, int n);

void printAllCC();

};

void dfsTest();

#endif /* _CC_*/

/*

* CC.cpp

*

* Created on: 2014年6月3日

* Author: zhongchao

*/

/*

* DFS.cpp

*

* Created on: 2014年6月1日

* Author: zhongchao

*/

#include "CC.h"

CC::CC(Graph* graph, int n): _graph(graph),num(0)

{

mark = new bool[graph->v()];

for(int i = 0; i < graph->v(); i++)

{

mark[i] = false;

}

_id = new int[graph->v()];

hash_set nodes = graph->getNodes();

for(hash_set::iterator it = nodes.begin(); it != nodes.end(); it++)

{

if(mark[*it] != true)

{

dfs(graph, *it);

num++;

}

}

}

void CC::dfs(Graph* graph, int n)

{

mark[n] = true;

_id[n] = num;

vector ns = graph->getEdges(n);

for(vector::iterator it = ns.begin(); it != ns.end(); it++)

{

if(mark[*it] == true) continue;

dfs(graph, *it);

}

}

bool CC::connected(int a, int b)

{

return _id[a] == _id[b];

}

int CC::id(int a)

{

return _id[a];

}

void CC::printAllCC()

{

hash_set nodes = _graph->getNodes();

for(hash_set::iterator it = nodes.begin(); it != nodes.end(); it++)

{

cout<

}

}

int CC::count()

{

return num;

}

CC::~CC()

{

delete[] mark;

}

void ccTest()

{

string path("/home/zhongchao/worksapce/cpp/ComputeAlgorithms/data/tinyG.txt");

Graph* graph = new Graph(path);

int n = 0;

CC* cc = new CC(graph, n);

cc->printAllCC();

}

/*

* Run.cpp

*

* Created on: 2014年5月25日

* Author: zhongchao

*/

#include "Graph.h"

#include "Prim.h"

#include "Dijkstra.h"

#include "DFS.h"

#include "BFS.h"

#include "CC.h"

void bfsTest();

void dfsTest();

void ccTest();

void dfsTopological();

int main(int argc, char** argv)

{

ccTest();

return 1;

}

3 连通子图如下

java 无向图子图_无向图的连通子图相关推荐

  1. 图的基本概念辨析,包括连通图、极大连通子图、连通分量、强连通图、极大强连通子图等

    概念(1-4)都是针对无向图的 1.连通图   图中从一个顶点到达另一顶点,若存在至少一条路径,则称这两个顶点是连通着的.例如图 1 中,虽然 V1 和 V3 没有直接关联,但从 V1 到 V3 存在 ...

  2. 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...

    树和图的概念 图是一种特殊的数据结构,由点和边构成,它可以用来描述元素之间的网状关系,这个网状没有顺序,也没有层次,就是简单的把各个元素连接起来. 图的概念和基本性质 图(graph):图(graph ...

  3. Python 计算两个连通子图距离_复杂网络分析之python利器NetworkX

    点击蓝字 关注我们 1 networkx介绍 networkx在2002年5月产生,是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分 ...

  4. 数据结构——图:极大小连通子图、图的存储结构、图的遍历

    图的基本概念: 极大连通子图就是连通分量. 极大连通子图与连通分量在无向图(undirected graph)这个前提下是等同的概念. 极小连通子图: 减去任何一条边就不再连通. 不管树还是二叉树:n ...

  5. 无向简单图怎么判断_无向图基础

    无向图是一种最简单的图模型,在这种图模型中,边仅仅是两个顶点之间的连接.我们用v-w的记法表示连接v和w的边,而w-v是这条边的另一种表示方法. 特殊的图.自环:即一条连接一个顶点和其自身的边: 连接 ...

  6. java判断图中两点是否连通_连通分量(求有几个连通分量+判断是否两点连通+是否为强联通图 相应例子)...

    参考博客: https://blog.csdn.net/jinzk123/article/details/52231527 https://blog.csdn.net/qq_40998706/arti ...

  7. 判断图的连通子图个数

    题目要求 给定一个具有n个顶点.m条边的无向图G,假设项点的编号为1-n.基于深度优先搜索算法,编写程序 求无向图G连通子图的个数. 输入格式: 第一行两个整数n, m,分别表示图G的顶点数和边的数量 ...

  8. 连通、连通分量、极大连通子图

    首先,明确概念间的关系 (连通.连通分量 = 极大连通子图)∈ 无向图        (强连通.强连通分量 = 极大强连通子图)∈ 有向图 连通.强连通 连通:无向图中,顶点v可以到达顶点w,称v和w ...

  9. 极大连通子图与极小连通子图(带图讲解)

    因为本人对于这一块知识存在疑惑,在学习了相关知识后将自己的理解分享给大家,如有错误,欢迎纠正. 首先我们先明确一下,极小连通子图与极大连通子图是在无向图中进行讨论的. 极大强连通子图是在有向图中进行讨 ...

最新文章

  1. git 常用命令_git常用命令的使用
  2. [ATF]-ARM级别/异常/状态切回时候的寄存器保存与恢复
  3. 【Python】find()函数居然还能指定搜索的起点和终点?
  4. SilverFoxServer出炉!!
  5. Spring boot(七):Spring boot+ mybatis 多数据源最简解决方案
  6. 十强决赛即将拉开帷幕!TECHSPARK星星之火IT创新大赛诚邀您观赛
  7. python三种变量方式_python2.x 3种变量形式调用
  8. [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
  9. Mysql排序添加名词_记面试中问到的MySQL的SQL调优问题
  10. 报表开发者必看:别加班了,快用这个工具让领导看到你的工作成果
  11. 修改windows cmd f2快捷_解放你的右手,实测12个超好用的自带快捷键
  12. linux 内核模块 proc,Linux 内核模块 proc文件系统.pdf
  13. 解决NetworkOnMainThreadException
  14. The proxy server received an invalid response from an upstream server.
  15. id3-sklearn算法实现(西瓜数据集)
  16. [渝粤教育】陕西师范大学《教育社会学》作业
  17. 2. webpack 处理 css less sass scss styl 资源
  18. 【jiasuba】让Win7系统下的硬盘不在狂闪的诀窍
  19. 赏析角度有哪些_几种分析的角度
  20. 雷军:相信自己,一往无前(MI10周年演讲精彩语录)

热门文章

  1. jstl 处理字符串函数 substring spli等
  2. 两列高度自适应(转)
  3. 简单的点击展开/关闭效果
  4. SharePoint 2010 列表项代码绑定附件心得 (FileUpload上传附件)
  5. python turtle库画图案-python之绘制图形库turtle(转)
  6. python装饰器原理-看完这篇文章还不懂Python装饰器?
  7. 精通python-助你精通python,这些学习资源请收好
  8. python怎么导入视频-Python模块导入详解
  9. python基本语法语句-python基本语句有哪些
  10. python经典100例答案pdf-Python 入门 100 案例,PDF免费下载