zoukankan      html  css  js  c++  java
  • 图论

    图的深度优先遍历c++实现

    • 深度优先搜索

    邻接矩阵的创建

    	int i, j, m, a, b;
    	cin >> n >> m;
    	//初始化二维矩阵
    	for (i = 1; i <= n; i++)
    		for (j = 1; j <= n; j++)
    			if (i == j)e[i][j] = 0;
    			else e[i][j] = 0x3f;
    
    	//读入顶点之间的边
    	for (i = 1; i <= m; i++)
    	{
    		cin >> a >> b;
    		e[a][b] = 1;
    		e[b][a] = 1; //无向图需要将其对应的点的左边也赋值为1
    	}
    
    

    深度优先搜索算法实现

    void dfs(int cur)
    {
    	int i;
    	cout << cur << " ";
    	sum++;//每访问一个节点sum就++
    	if (sum == n)return;//所有的顶点已经访问过直接退出
    	for (int i = 1; i <= n; i++)
    	{
    		//判断当前顶点cur到顶点i是否有边,并判断顶点i是否已经访问过
    		if (e[cur][i] == 1 && book[i] == 0)
    		{
    			book[i] = 1;
    			dfs(i);
    		}
    	}
    	return;
    }
    

    整体代码

    #include <iostream>
    #include <cstdio>
    using namespace std;
    int book[101], sum, n, e[101][101];
    
    void dfs(int cur)
    {
    	int i;
    	cout << cur << " ";
    	sum++;//没访问一个节点sum就++
    	if (sum == n)return;//所有的顶点已经访问过直接退出
    	for (int i = 1; i <= n; i++)
    	{
    		//判断当前顶点cur到顶点i是否有边,并判断顶点i是否已经访问过
    		if (e[cur][i] == 1 && book[i] == 0)
    		{
    			book[i] = 1;
    			dfs(i);
    		}
    	}
    	return;
    }
    int main()
    {
    	int i, j, m, a, b;
    	cin >> n >> m;
    	//初始化二维矩阵
    	for (i = 1; i <= n; i++)
    		for (j = 1; j <= n; j++)
    			if (i == j)e[i][j] = 0;
    			else e[i][j] = 0x3f;
    
    	//读入顶点之间的边
    	for (i = 1; i <= m; i++)
    	{
    		cin >> a >> b;
    		e[a][b] = 1;
    		e[b][a] = 1; //无向图需要将其对应的点的左边也赋值为1
    	}
    
    	//从顶点1出发
    	book[1] = 1;//标记一号顶点已经被访问
    	dfs(1);//从1号顶点开始遍历
    	system("pause");
    	return 0;
    }
    
  • 相关阅读:
    UVA1349 Optimal Bus Route Design 最优巴士路线设计
    POJ3565 Ants 蚂蚁(NEERC 2008)
    UVA1663 Purifying Machine 净化器
    UVa11996 Jewel Magic 魔法珠宝
    NEERC2003 Jurassic Remains 侏罗纪
    UVA11895 Honorary Tickets
    gdb调试coredump(使用篇)
    使用 MegaCLI 检测磁盘状态并更换磁盘
    员工直接坦诚直来直去 真性情
    山东浪潮超越3B4000申泰RM5120-L
  • 原文地址:https://www.cnblogs.com/wlw-x/p/11509384.html
Copyright © 2011-2022 走看看