用邻接表实现该图的广度优先搜索遍历
来源:互联网 发布:手机男变女声音软件 编辑:程序博客网 时间:2024/05/22 10:32
#include<iostream.h>
const intn=8; //表示图中的最大顶点数
const inte=15; //图中的最大边数
typedefint elemtype;
boolvisited[n+1]; //标志数组用于记载某个顶点是否被访问过
classlink //定义链表类型
{
public:
elemtype data;
link *next;
};
classGRAPH //定义邻接表的表头类型
{
public:
linka[n+1];
voidcreatlink() //建立图的邻接表
{
inti,j,k;
link *s;
for(i=1;i<=n;i++) //建立邻接表的表头类型
{
a[i].data=i;
a[i].next=NULL;
}
for(k=1;k<=e;k++)
{
cout<<"请输入一条边";
cin>>i>>j; //输入一条边(i,j)
cout<<endl;
s=newlink; //申请一个动态存储单元
s->data=j;
s->next=a[i].next; //头插法建立链表
a[i].next=s; //头插法建立链表
s=newlink;
s->data=i;
s->next=a[j].next; //头插法建立链表
a[j].next=s; //头插法建立链表
}
}
voidbfs1(int i) //用邻接表从顶点i出发进行广度优先搜索遍历
{
intq[n+1]; //定义队列
int f,r;
link*p; //p为搜索指针
f=r=0;
cout<<a[i].data<<"";
visited[i]=true;
r++;
q[r]=i; //进队
while(f<r)
{
f++;
i=q[f]; //出队
p=a[i].next;
while(p!=NULL)
{
if(!visited[p->data])
{
cout<<a[p->data].data<<"";
visited[p->data]=true;
r++;
q[r]=p->data; //进队
}
p=p->next;
}
}
}
};
voidmain()
{
link *p;
int yn=1;
GRAPH G;
G.creatlink(); //建立邻接表
while(yn==1)
{
for(inti=1;i<=n;i++) //输出邻接表
{
p=G.a[i].next;
cout<<G.a[i].data<<"->";
while(p->next!=NULL)
{
cout<<p->data<<"->";
p=p->next;
}
cout<<p->data<<endl;
}
for(i=1;i<=n;i++)
visited[i]=false;
cout<<"请输入广度优先搜索开始访问的顶点";
cin>>i;
cout<<endl;
cout<<"从"<<i<<"出发的广度优先搜索遍历序列为"<<endl;
G.bfs1(i);
cout<<endl;
cout<<"继续遍历吗(1/2)?";
cin>>yn;
}
}
- 用邻接表实现该图的广度优先搜索遍历
- 图的广度优先搜索遍历(邻接表&邻接矩阵)(C++)
- 图的广度优先遍历,基于邻接链表实现
- 图的广度优先搜索(邻接表)
- 基于邻接表的广度优先搜索遍历
- 基于邻接表的广度优先搜索遍历
- 图算法:1、邻接表实现图的深度优先遍历,广度优先遍历
- 图的邻接表存储 深度优先遍历 广度优先遍历 C语言实现
- 图的邻接表存储 深度优先遍历 广度优先遍历 C语言实现
- 邻接表实现--图的深度优先遍历DFS和广度优先遍历BFS
- 图的深度优先搜索/广度优先搜索(邻接表实现)
- 用邻接表实现图的深度优先遍历、广度优先遍历、最短路径(无权图)
- 邻接表实现BFS广度优先搜索
- 邻接表-图的遍历-广度和深度优先遍历
- 基于邻接表的图的深度和广度优先搜索遍历
- 建立图的邻接表储存并实现深度优先和广度优先遍历
- 数据结构实验图论:基于邻接矩阵/邻接表的广度优先搜索遍历(BFS)
- 数据结构实验图论:基于邻接矩阵/邻接表的广度优先搜索遍历
- 矩形类中运算符重载
- 词典查找算法
- 黑马程序员_学习笔记10——引用类型与值类型,继承,访问修饰符,里氏转换
- 【vb数据库】--SQL
- Android开发书籍推荐
- 用邻接表实现该图的广度优先搜索遍历
- jQuery Mobile页面跳转切换的几种方式
- cvFindContours && cvDrawContours 的应用2-----图像内轮廓填充
- mysql 创建表 最标准最完整版
- 使用contextMenu实现上下文菜单(重点:contextmenu/relatedTarget)
- 关于 类成员函数返回指向const临时变量的引用
- MySql权限
- 弹出可以拖动的框
- Ubuntu进入根用户命令