图BFS
来源:互联网 发布:卡通人物在线设计软件 编辑:程序博客网 时间:2024/06/05 11:50
图的BFS
#include<stdio.h>#include<stdlib.h>#define MAX 100 #define initial 1#define waiting 2#define visited 3int n; int adj[MAX][MAX];int state[MAX]; void create_graph();void BF_Traversal();void BFS(int v);int queue[MAX], front = -1,rear = -1;void insert_queue(int vertex);int delete_queue();int isEmpty_queue();int main(){ create_graph(); BF_Traversal(); return 0;}void BF_Traversal(){ int v; for(v=0; v<n; v++) state[v] = initial; printf("Enter Start Vertex for BFS: \n"); scanf("%d", &v); BFS(v);}void BFS(int v){ int i; insert_queue(v); state[v] = waiting; while(!isEmpty_queue()) { v = delete_queue( ); printf("%d ",v); state[v] = visited; for(i=0; i<n; i++) { if(adj[v][i] == 1 && state[i] == initial) { insert_queue(i); state[i] = waiting; } } } printf("\n");}void insert_queue(int vertex){ if(rear == MAX-1) printf("Queue Overflow\n"); else { if(front == -1) front = 0; rear = rear+1; queue[rear] = vertex ; }}int isEmpty_queue(){ if(front == -1 || front > rear) return 1; else return 0;}int delete_queue(){ int delete_item; if(front == -1 || front > rear) { printf("Queue Underflow\n"); exit(1); } delete_item = queue[front]; front = front+1; return delete_item;}void create_graph(){ int count,max_edge,origin,destin; printf("Enter number of vertices : "); scanf("%d",&n); max_edge = n*(n-1); for(count=1; count<=max_edge; count++) { printf("Enter edge %d( -1 -1 to quit ) : ",count); scanf("%d %d",&origin,&destin); if((origin == -1) && (destin == -1)) break; if(origin>=n || destin>=n || origin<0 || destin<0) { printf("Invalid edge!\n"); count--; } else { adj[origin][destin] = 1; } }}
0 0
- 图 -> BFS
- 图---BFS
- 图BFS
- 无向图+BFS
- 图的遍历BFS
- BFS图的遍历
- 图的BFS
- 【图】BFS与DFS
- 图的遍历-BFS
- 图 DFS BFS 回溯
- poj1022 图的bfs
- BFS遍历图代码
- 判断二分图 bfs
- 图的BFS
- 【图】BFS和DFS
- 补图 + bfs
- 图的遍历BFS
- LeetCode基础-图-BFS
- SAPUI5:图标icon
- 杭电 1022【火车的出栈入栈】
- Java千百问_03基础语法(014)_volatile关键字有什么用
- 动态提交表单(对数字的排序)
- Qt5设计师 的布局管理器的使用例子。
- 图BFS
- SharedPreference 空指针异常
- 第15周项目-范型程序设计(1)(一个小细节~)
- Make项目管理器
- Java笔试题库之编程题库 总共30道编程题,掌握了就可以应付中级以内Java面试题
- 字符移位
- 亚洲/重庆时区(陇蜀时区)变迁
- 第七次C++作业
- Mybatis查询 注意 传入参数