教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

广度优先与深度优先搜索

来源:网络收集 时间:2026-09-04
导读: #include \ #include \ #include \ #include \ #define MAX_VERTEX_NUM 10 #define MAXQSIZE 10 int visited[MAX_VERTEX_NUM]; typedef struct Node{ int adjvex; struct Node *next; }EdgeNode; typedef struct VNode{ int vertex; EdgeNode *firstedge; }V

#include \

#include \

#include \

#include \

#define MAX_VERTEX_NUM 10

#define MAXQSIZE 10

int visited[MAX_VERTEX_NUM];

typedef struct Node{

int adjvex;

struct Node *next;

}EdgeNode;

typedef struct VNode{

int vertex;

EdgeNode *firstedge;

}VertexNode;

typedef VertexNode AdjList[MAX_VERTEX_NUM];

typedef struct{

AdjList adjlist;

int n,e;

}ALGraph;

typedef struct{

int *base;

int front;

int rear;

}SqQueue;

int InitQueue(SqQueue *Q) {

Q->base=(int *)malloc(MAXQSIZE*sizeof(int));

if(!Q->base)

return 0;

Q->front=Q->rear=0;

return 1; }

int EnQueue(SqQueue *Q,int e) {

if((Q->rear+1)%MAXQSIZE==Q->front)

return 0;

Q->base[Q->rear]=e;

Q->rear=(Q->rear+1)%MAXQSIZE;

return 1; }

int DeQueue(SqQueue *Q) {

int i;

i=Q->base[Q->front];

Q->front=(Q->front+1)%MAXQSIZE;

return i; }

int QueueEmpty(SqQueue *Q) {

if(Q->front==Q->rear)

return 1;

return 0; }

void BFS(ALGraph *G,int k)

{

int e;

SqQueue Q;

EdgeNode *p;

InitQueue(&Q);

printf(\这次访问顶点:%d\\n\

visited[k]=1;

p=G->adjlist[k].firstedge;

while(p!=NULL)

{

EnQueue(&Q,p->adjvex);

printf(\这次访问顶点:%d\\n\

visited[p->adjvex]=1;

p=p->next;

}

while(!QueueEmpty(&Q))

{

e=DeQueue(&Q);

p=G->adjlist[e].firstedge;

while( p!=NULL )

{

if(visited[p->adjvex]==0)

{

printf(\这次访问顶点:%d\\n\

visited[p->adjvex]=1;

EnQueue(&Q,p->adjvex);

}

p=p->next;

} } }

void CreateALGraph(ALGraph *G)

{

int i,j,k;

EdgeNode *s;

printf(\设定无向图的顶点数n:\\n\

scanf(\

printf(\设定无向图的边数e:\\n\

scanf(\

for(i=0;i<(G->n);i++) {

广度优先与深度优先搜索.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/444826.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)