第十二周项目3 图遍历算法实现(2)
来源:互联网 发布:单片机与串口调试助手 编辑:程序博客网 时间:2024/05/16 02:11
问题与代码
/* *Copyright (c) 2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作者:陈梦萍 *完成日期:2015年11月27日 *版本号:v1.0 * *问题描述: 实现图遍历算法,输出广度优先遍历序列。 *输入描述:无 *程序输出:若干数据 */
基础程序
图算法库
//main.cpp
#include "head.h"void BFS(ALGraph *G, int v){ ArcNode *p; int w,i; int queue[MAXV],front=0,rear=0; //定义循环队列 int visited[MAXV]; //定义存放节点的访问标志的数组 for (i=0; i<G->n; i++) visited[i]=0; //访问标志数组初始化 printf("%2d",v); //输出被访问顶点的编号 visited[v]=1; //置已访问标记 rear=(rear+1)%MAXV; queue[rear]=v; //v进队 while (front!=rear) //若队列不空时循环 { front=(front+1)%MAXV; w=queue[front]; //出队并赋给w p=G->adjlist[w].firstarc; //找w的第一个的邻接点 while (p!=NULL) { if (visited[p->adjvex]==0) { printf("%2d",p->adjvex); //访问之 visited[p->adjvex]=1; rear=(rear+1)%MAXV; //该顶点进队 queue[rear]=p->adjvex; } p=p->nextarc; //找下一个邻接顶点 } } printf("\n");}int main(){ ALGraph *G; int A[5][5]= { {0,1,0,1,0}, {1,0,1,0,0}, {0,1,0,1,1}, {1,0,1,0,1}, {0,0,1,1,0} }; ArrayToList(A[0], 5, G); printf(" 由2开始广度遍历:"); BFS(G, 2); printf(" 由0开始广度遍历:"); BFS(G, 0); return 0;}
运行结果
知识点总结
实现了图的广度遍历。
0 0
- 第十二周 项目3-图遍历算法实现(2)
- 第十二周项目3 - 图遍历算法实现(2)
- 第十二周项目3 图遍历算法实现(2)
- 第十二周 项目3-图遍历算法实现(1)
- 第十二周项目3 - 图遍历算法实现(1)
- 第十二周项目3 图遍历算法实现(1)
- 第十二周项目3-图遍历算法实现(1)
- (第十二周项目3)图遍历算法实现
- 第十二周 项目三(2)图遍历算法实现
- 第十二周项目3—图遍历算法实现
- 第十二周 项目3 图遍历算法实现
- 第十二周实践项目3—图遍历算法实现
- 第十二周项目3--图遍历算法实现
- 第十二周项目3-图遍历算法实现
- 第十二周项目3图遍历算法实现
- 第十二周项目3-图遍历算法实现
- 第十二周 - 项目3 - 图遍历算法实现
- 第十二周项目3图遍历算法实现
- Windows 显示文件或目录的短名字
- 第十三周 项目3-Dijkstra算法的验证
- 你可能不知道的事(服务器返回 id)
- python nonzero()
- AEAI HR V1.5.1升级说明,开源人力资源管理系统
- 第十二周项目3 图遍历算法实现(2)
- Nginx配置
- C4819:该文件包含不能在当前代码页中表示的字符。请将该文件保存为Unicode格式以防数据丢失
- 第十二周项目4 利用遍历思想求解图问题(1)
- 安装Flash Player 调试版本简单方式(安装的Adobe Flash Player不是调试器)
- 第十二周 项目一-算法库的建立
- 第七周项目6-停车场模拟
- git学习教程
- 第十二周--数据结构--输出出图G中每个顶点的出度