c++中图的遍历,dfs和bfs的简单实现

下面是代码实现部分,感兴趣再在下面看相关知识

//代码实现部分 
#include 
   
   
    
    
using namespace std;

#define M 100000
int p = 1;//记录数组队列的当前下标,头指针
int s = 0;//记录数组队列下标的记忆下标,尾指针
int f[M];//数组队列
//dfs遍历 
void dfs(int);

//bfs遍历
void bfs(int);
int G[6][6] = { 
{ M, 1, 1, 1, M, M },
{ 1, M, 1, M, 1, M },
{ 1, 1, M, 1, 1, 1 },
{ 1, M, 1, M, M, 1 },
{ M, 1, 1, M, M, 1 },
{ M, M, 1, 1, 1, M }
};
bool d1v[6] = { false };//标志数组,dfs
bool d2v[6] = { false };//标志数组,bfs
//图的遍历
//深度优先搜索dfs
//一直找一条路径,找到终端还没找完。 然后返回上一个节点再找,找完再返回
void dfs(int m)//采用递归形式完成
{
d1v[m] = true;
for (int w = 0; w<6; w++)
{
if (G[m][w] != M&&!d1v[w])
{
cout << "(" << m + 1 << ',' << w + 1 << ")" << " ";
dfs(w);
}
}
}
//广度优先搜索bfs
//先把第一节点的有连接的节点都入队列,然后弹出第一节点,寻找队列第一元素,循环下去
 voi
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值