无向图中的广度优先生成森林

本文介绍无向图中广度优先森林的生成方法,通过C++实现,包括读取图数据、广度优先搜索(BFS)生成森林、前序遍历输出森林。实验结果显示,广度优先生成森林的时间与深度优先相当。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

广度优先生成森林的思路和深度优先生成森林的思路相同,在此不再复述,请看上一篇。
#include<iostream>
#include<fstream>
#include<vector>
#include<time.h>
#include<algorithm>
#include<queue>
using namespace std;

struct CSTree
{
	int data;
	CSTree * lchild;
	CSTree * nextsibling;
};

void BFSTree(int v,CSTree *&p);
void BFSForest(CSTree *&root);
CSTree *root = NULL;//生成森林
bool *visited;
vector<vector<int>> mGraph;//图结构
int nodeNum;//图中顶点数
int edgeNum;//图中边数

void readGraph()
{
	fstream fin("E:\\myData\\facebook_combined.txt");//打开文件
	fin>>nodeNum>>edgeNum;//读取顶点数和边数
	mGraph.resize(nodeNum);//设置图的大小
	visited = new bool[nodeNum];
	for(int i = 0; i < nodeNum; ++i)
	{
		visited[i] = false;
	}
	int num1, num2;
	while(fin>>num1>>num2)//读取每一条边
	{
		mGraph[num1].push_back(num2);//存储边的信息
		mGraph[num2].push_back(num1);
	}
	fin.close();//关闭文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值