c++ 广度优先搜索
#include <iostream>
using namespace std; const int verMax=;
const int queMax=; // >=9皆可 struct node//声明图形顶点结构
{
int vertex;
struct node *next;
}; typedef struct node *graph;
struct node head[verMax];//声明顶点结构数组
int que[queMax];
int front=-;
int rear=-;
int visit[verMax];//查找记录//队列的存入 int enque(int v)
{
if(rear>=queMax)//队列已满
return -;
else
{
rear++;//对了尾端指针后移
que[rear]=v;//将值存入队列中
return ;
}
}
//队列的取出
int deque()
{
if(front==rear)//队列已空
return -;
else
{
front++;
return que[front];
}
}
//广度优先搜索法
void BFS(int v)
{
graph point;
enque(v);//存入队列
visit[v]=;//已查找
cout<<"["<<v<<"]==>";
while(front!=rear)
{
v=deque();
point=head[v].next;
while(point!=NULL)//读入邻接列表所有顶点
{
if(visit[point->vertex]==)
{
enque(point->vertex);//存入队列
visit[point->vertex]=;//已查找过的顶点
cout<<"["<<point->vertex<<"]==>";
}
point=point->next;
}
}
}
//建立邻接顶点至邻接列表内
void create_graph(int v1,int v2)
{
graph point,New;
New=(graph)malloc(sizeof(struct node));
if(New!=NULL)
{
New->vertex=v2;//邻近顶点
New->next=NULL;
point=&(head[v1]);
while(point->next!=NULL)
point=point->next;
point->next=New;//串连在列表尾端
}
}
//输出邻接列表内数据
void print_graph(struct node *head)
{
graph point;
point=head->next;//设置point为首节点
while(point!=NULL)
{
cout<<"["<<point->vertex<<"] ";
point=point->next;
}
cout<<endl;
}
//主程序
void main()
{
int node[][]={
{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},
{,},{,},{,},{,},{,},{,},{,},{,},{,},{,}};
int i;
for(i=;i<verMax;i++)
{
head[i].vertex=i;
head[i].next=NULL;
}
for(i=;i<verMax;i++)
visit[i]=; for(i=;i<;i++)
create_graph(node[i][],node[i][]); cout<<"======Graph======"<<endl;
for(i=;i<verMax;i++)
{
cout<<"Vertex["<<i<<"]: ";
print_graph(&head[i]);
}
//广度优先搜索
cout<<"Bradth-First-Search:"<<endl<<"&BEGIN==>";
BFS();
cout<<"END&"<<endl;
}
c++ 广度优先搜索的更多相关文章
- 图的广度优先搜索(BFS)
把以前写过的图的广度优先搜索分享给大家(C语言版) #include<stdio.h> #include<stdlib.h> #define MAX_VERTEX_NUM 20 ...
- 广度优先搜索(BFS)
定义 维基百科:https://en.wikipedia.org/wiki/Breadth-first_search 给定图G=(V,E)和一个可识别的源结点s,广度优先搜索对图G中的边进行系统性的探 ...
- 总结A*,Dijkstra,广度优先搜索,深度优先搜索的复杂度比较
广度优先搜索(BFS) 1.将头结点放入队列Q中 2.while Q!=空 u出队 遍历u的邻接表中的每个节点v 将v插入队列中 当使用无向图的邻接表时,复杂度为O(V^2) 当使用有向图的邻接表时, ...
- ACM题目————图的广度优先搜索
题目描述 图的广度优先搜索类似于树的按层次遍历,即从某个结点开始,先访问该结点,然后访问该结点的所有邻接点,再依次访问各邻接 点的邻接点.如此进行下去,直到所有的结点都访问为止.在该题中,假定所有的结 ...
- SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
- HDU 1312 Red and Black DFS(深度优先搜索) 和 BFS(广度优先搜索)
Red and Black Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 1241 Oil Deposits DFS(深度优先搜索) 和 BFS(广度优先搜索)
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 1242 Rescue (BFS(广度优先搜索))
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- SDUT2142数据结构实验之图论二:基于邻接表的广度优先搜索遍历
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2142&cid=1186 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜 ...
- 广度优先搜索BFS
广度优先搜索可以形成一个广度优先搜索树 算法时间为O(V+E),两重循环 输入:图g,起点start(int) 需要的数据结构:队列Q.color数组(存放每个顶点的颜色) 算法过程: 1. 预处理: ...
随机推荐
- Day6 - C - Count HYSBZ - 1452 /1452: [JSOI2009]Count
Description 一个N*M的方格,初始时每个格子有一个整数权值,接下来每次有2个操作: 改变一个格子的权值 求一个子矩阵中某个特定权值出现的个数 Input 每一行有两个数字N,M 接下来 ...
- 003.Oracle数据库 , 查询日期格式格式化
/*日期格式转换*/ SELECT TO_CHAR( OCCUR_DATE, 'yyyy/mm/dd hh24:mi:ss' ) FROM LM_FAULT WHERE ( ( OCCUR_DATE ...
- Java中JSON字符串与java对象的互换实例详解(转)
http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...
- ubuntu18.04下载yarn
下载curl sudo apt-get update && sudo apt-get install curl 配置库 curl -sS https://dl.yarnpkg.com/ ...
- NO11 SSH故障排查思路和netstat命令
本章知识相关考试:1.企业场景面试题:Linux系统如何优化?2.企业场景面试题:SSH服务连不上,如何排查?记住回答技巧: 1 ping 2 telnet 客户端ssh工具:SecureCRT,x ...
- tornado5.0+async+await
不使用数据库的情况下实现异步 使用gen.sleep()模拟阻塞 使用gen.sleep(time) 而不是time.sleep(),time.sleep()阻塞整个进程,看gen.sleep()源码 ...
- Echarts词云图
今天使用Echarts写了个词云图,之前使用pycharts生成的html就是echarts.主要代码如下,另外Echarts需要到https://www.echartsjs.com/下载,开发时使用 ...
- (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
http://blog.csdn.net/henuhaigang/article/details/13678023 转自CSDN博客,因为一个jar包没引入困扰我好长时间 ,当时正在做spring A ...
- LCT(2)
LCT(2) 关于 LCT 的基本操作和代码实现见 (1) . 5. LCT的应用 5.0 LCT 裸题 就是LCT的基本操作模板题,常出现于早年省选.不讨论. 5.1 LCT维护子树信息 很多时候, ...
- ServletContext 详解
ServletContext——它是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放.request,一个用户可有多个:session,一个用户一个:而servletContext ...