我是靠谱客的博主 鲤鱼飞机,最近开发中收集的这篇文章主要介绍最全图算法(dfs,bfs,最短路,最小生成树,拓扑排序),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//邻接矩阵实现
#include<iostream>
#include<queue>
#define v_max 10
#define e_max 100
using namespace std;
class graph
{
private:
	int v_num;										//节点数
	int e_num;										//边数
	int edge[v_max][v_max];
	int visited[v_max];
public:
	graph(int v, int e);
	void creategraph(int v, int e);
	void print();
	void dfs(int i);
	void dfs_();
	void bfs(int v);
	void bfs_();
};
graph::graph(int v, int e) :v_num(v), e_num(e)
{
	creategraph(v, e);
}
void graph::creategraph(int v, int e)
{
	for (int i = 0; i < v_max; i++)
		for (int j = 0; j < v_max; j++)
		{
			if (i != j)
				edge[i][j] = INT_MAX;
			else
				edge[i][j] = 0;
		}
	for (int i = 0; i < e; i++)
	{
		int s, d, w;
		cin >> s >> d >> w;
		edge[s][d] = w;
	}
}
void graph::print()
{
	for (int i = 0; i < v_max; i++)
	{
		cout << i << "节点相邻接点: ";
		for (int j = 0; j < v_max; j++)
		{
			if (edge[i][j] != INT_MAX && edge[i][j] != 0)
				cout << j << ' ';
		}
		cout << endl;
	}
}
void graph::dfs_()
{
	for (int i = 0; i < v_max; i++)
	{
		visited[i] = 0;
	}
	cout << "访问顺序:";
	for (int i = 0; i < v_num; i++)
	{
		if (!visited[i])
		{
			cout << i << "->";
			visited[i] = 1;
			dfs(i);
		}

	}
}
void graph::dfs(int i)
{
	for (int j = 0; j < v_max; j++)
	{
		if (!visited[j] && edge[i][j] != 0 && edge[i][j] != INT_MAX)
		{
			cout << j << "->";
			visited[j] = 1;
			dfs(j);
		}
	}
}
void graph::bfs(int v)
{
	queue<int>q;
	q.push(v);
	
	while (!q.empty())
	{
		int w = q.front();
		cout << w << "->";
		q.pop();
		for (int i = 0; i < v_num; i++)
		{
			if (!visited[i] && edge[w][i] != 0 && edge[w][i] != INT_MAX)
			{
				visited[i] = 1;
				q.push(i);
			}
		}
	}
}
void graph::bfs_()
{
	for (int i = 0; i < v_max; i++)
	{
		visited[i] = 0;
	}
	for (int i = 0; i < v_num; i++)
	{
		if (!visited[i])
		{
			visited[i] = 1;
			bfs(i);
		}
	}
}

未完待续

最后

以上就是鲤鱼飞机为你收集整理的最全图算法(dfs,bfs,最短路,最小生成树,拓扑排序)的全部内容,希望文章能够帮你解决最全图算法(dfs,bfs,最短路,最小生成树,拓扑排序)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部