收藏 分销(赏)

数据结构C语言实现图的建立-图的广度-深度遍历.doc

上传人:精*** 文档编号:4138234 上传时间:2024-07-31 格式:DOC 页数:6 大小:74KB
下载 相关 举报
数据结构C语言实现图的建立-图的广度-深度遍历.doc_第1页
第1页 / 共6页
数据结构C语言实现图的建立-图的广度-深度遍历.doc_第2页
第2页 / 共6页
数据结构C语言实现图的建立-图的广度-深度遍历.doc_第3页
第3页 / 共6页
数据结构C语言实现图的建立-图的广度-深度遍历.doc_第4页
第4页 / 共6页
数据结构C语言实现图的建立-图的广度-深度遍历.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、图的建立,图的广度,深度遍历#include stdio.h#define maxsize 1000 # define n 100 typedef struct char vexsn ; int arcsnn ; int num ; G;typedef struct int datamaxsize; int front,rear; V;void GInit(G *L) L-num=0;int GVexs(G *L) return(L-num);void GCreate(G *L) int i,j; GInit(L); printf(请输入顶点数目:n); scanf(%d,&L-num); p

2、rintf(请输入各顶点:n); for(i=0;inum;i+) fflush(stdin); scanf(%c,&L-vexsi); printf(请输入各顶点边的关系(1是有关0是无关):n); for(i=0;inum;i+) for(j=0;jnum;j+) scanf(%d,&L-arcsij); void GOut(G L) int i,j; printf(n图的顶点数目为:%d,L.num); printf(n图的各顶点的信息为:n); for(i=0;iL.num;i+) printf(%7c,L.vexsi); printf(n); for(i=0;iL.num;i+) f

3、or(j=0;jL.num;j+) printf(%7d ,L.arcsij); printf(n); void DFS(G g,int qidian,int mark) int v1; markqidian=1; printf(%c ,g.vexsqidian); for(v1=0;v1g.num;v1+) if(g.arcsqidianv1!=0&markv1=0) DFS(g,v1,mark); void GDFS(G g) int qidian,v,v1,markmaxsize; printf(n深度遍历:); printf(n请输入起点的下标:); scanf(%d,&qidian)

4、 getchar(); for(v=0;vg.num;v+) markv=0; for(v=qidian;vfront=0; sq-rear=0;int QueueIsEmpty(V sq) if (sq.rear=sq.front) return(1); else return(0); int QueueFront(V sq, int *e) if (QueueIsEmpty(sq) printf(queue is empty!n);return 0; else *e=sq.data(sq.front); return 1;int QueueIn (V *sq, int x)/ if (s

5、q-front=(sq-rear+1)%maxsize) printf(queue is full!n); return 0; else sq-datasq-rear=x; sq-rear=(sq-rear+1)%maxsize; return(1); int QueueOut(V *sq) if (QueueIsEmpty(*sq) printf(queue is empty!n); return 0; else sq-front=(sq-front+1)%maxsize; return 1; void BFS(G g,int v,int mark) int v1,v2; V q; Queu

6、eInit(&q); QueueIn(&q,v); markv=1; printf(%c ,g.vexsv); while(QueueIsEmpty(q)=0) QueueFront(q,&v1); QueueOut(&q); for(v2=0;v2g.num;v2+) if(g.arcsv1v2!=0&markv2=0) QueueIn(&q,v2); markv2=1; printf(%c ,g.vexsv2); void GBFS(G g) int qidian,v,v1,markmaxsize; printf(n广度遍历:); printf(n); scanf(%d,&qidian); for(v=0;vg.num;v+) markv=0; for(v=qidian;vg.num+qidian;v+) v1=v%g.num; if(markv1=0) BFS(g,v1,mark); void main() G tu; GCreate(&tu); GOut(tu); GDFS(tu); GBFS(tu);

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服