欢迎来到天天文库
浏览记录
ID:38788094
大小:13.77 KB
页数:4页
时间:2019-06-19
《广度优先算法的C++实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//只需要三个文件,需要用到该算法的时候只需要把searchAlgorithm.h这个头文件包含进来就可以使用了。//typeDefinition.h文件代码如下:#pragmaonce//定义链接的结构体typedefstructIDSrcAndDst{intIDSrc;//源节点标号intIDDst;//目的节点标号}IDSrcAndDst;//searchAlgorithm.h文件代码如下:#pragmaonce#include"typeDefinition.h"#include2、r>usingnamespacestd;classBreadthFirstAlgorithm{public:voidJudgeConnection(vectorIDSrcDst,intnodeNum,intedgeNum);//根据所给图的数据判断该图是否连通//其中nodeNum为图的节点数,edgeNum为边数public:BreadthFirstAlgorithm();~BreadthFirstAlgorithm();};//searchAlgorithm.cpp文3、件代码如下:#include#include"searchAlgorithm.h"usingnamespacestd;BreadthFirstAlgorithm::BreadthFirstAlgorithm(){}BreadthFirstAlgorithm::~BreadthFirstAlgorithm(){}voidBreadthFirstAlgorithm::JudgeConnection(vectorIDSrcDst,intnodeNum,int4、edgeNum){vectornode_id;//定义节点id号容器node_id.clear();node_id.push_back(0);//自定义算法从标号为0的点开始执行,故将0放进容器intflagSRC=0;//源节点不在容器中的标记,0表示该节点不在容器中intflagDST=0;//目的节点不在容器中的标记,0表示该节点不在容器中intcurrent_nodeid=0;//定义当前根节点,刚开始时以标号为0的点为当前根节点intnode_size;//定义节点容器的大小n5、ode_size=node_id.size();//以0为根节点,将生成树按照广度优先的顺序逐层遍历//主循环中,有100个节点,就遍历100次;次循环中,有300条边,就循环300次for(intl=0;l6、判断目的节点是否在nodeid容器中,若不在即写进容器for(intp=0;p7、,若不在即写进容器for(intp=0;p8、e_id.size()){cout<<"ThisGraphisconnected."<
2、r>usingnamespacestd;classBreadthFirstAlgorithm{public:voidJudgeConnection(vectorIDSrcDst,intnodeNum,intedgeNum);//根据所给图的数据判断该图是否连通//其中nodeNum为图的节点数,edgeNum为边数public:BreadthFirstAlgorithm();~BreadthFirstAlgorithm();};//searchAlgorithm.cpp文
3、件代码如下:#include#include"searchAlgorithm.h"usingnamespacestd;BreadthFirstAlgorithm::BreadthFirstAlgorithm(){}BreadthFirstAlgorithm::~BreadthFirstAlgorithm(){}voidBreadthFirstAlgorithm::JudgeConnection(vectorIDSrcDst,intnodeNum,int
4、edgeNum){vectornode_id;//定义节点id号容器node_id.clear();node_id.push_back(0);//自定义算法从标号为0的点开始执行,故将0放进容器intflagSRC=0;//源节点不在容器中的标记,0表示该节点不在容器中intflagDST=0;//目的节点不在容器中的标记,0表示该节点不在容器中intcurrent_nodeid=0;//定义当前根节点,刚开始时以标号为0的点为当前根节点intnode_size;//定义节点容器的大小n
5、ode_size=node_id.size();//以0为根节点,将生成树按照广度优先的顺序逐层遍历//主循环中,有100个节点,就遍历100次;次循环中,有300条边,就循环300次for(intl=0;l6、判断目的节点是否在nodeid容器中,若不在即写进容器for(intp=0;p7、,若不在即写进容器for(intp=0;p8、e_id.size()){cout<<"ThisGraphisconnected."<
6、判断目的节点是否在nodeid容器中,若不在即写进容器for(intp=0;p7、,若不在即写进容器for(intp=0;p8、e_id.size()){cout<<"ThisGraphisconnected."<
7、,若不在即写进容器for(intp=0;p8、e_id.size()){cout<<"ThisGraphisconnected."<
8、e_id.size()){cout<<"ThisGraphisconnected."<
此文档下载收益归作者所有