- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验用邻接表实现图的遍历.
数据结构实验报 告副标题:用邻接表实现图的遍历班级:信安1002班学号:0705100227姓名:叶鑫实验题目 编写一个程序algo8-2.cpp,实现实现图的遍历运算,并在此基础上设计一个主程序完成如下功能:输出如图所示的有向图G从顶点0开始的深度优先遍历序列(递归算法);输出如图所示的有向图G从顶点0开始的深度优先遍历序列(非递归算法);输出如图所示的有向图G从顶点0开始的广度优先遍历序列;实验目的 通过实验巩固图的遍历算法。实验过程#includestdio.h#includemalloc.h#includestring.h#includestdlib.h#define NULL0#define MAXV 100typedef struct ANode{ int adjvex; struct ANode *nextarc; int info;}ArcNode;typedef struct Vnode{int data; ArcNode *firstarc;}VNode;typedef VNode AdjList[MAXV];typedef struct{AdjList adjlist; int n,e;}ALGraph;int visited[100]={0};void Creat(ALGraph *G,FILE *outFile,FILE *fp)//创建邻接表{int i;char a ,b; ArcNode *p,*r; G=(ALGraph *)malloc(sizeof(ALGraph));printf(顶点个数:);fprintf(fp,顶点个数:);fscanf(outFile,%d,G-n);printf(%d\n,G-n);fprintf(fp,%d\n,G-n);for(i=0;iG-n;i++)G-adjlist[i].firstarc=NULL;for(i=0;iG-n;i++){ fscanf(outFile,\n);fscanf(outFile,%c,a);fscanf(outFile,:);printf(%c :,a);fprintf(fp,%c :,a);fscanf(outFile,%c,b);while(b!=\n){if(b==\0)fscanf(outFile,%c,b);else{if(G-adjlist[a-0].firstarc==NULL){ p=(ArcNode *)malloc(sizeof(ArcNode));p-adjvex=b;p-nextarc=G-adjlist[a-0].firstarc;G-adjlist[a-0].firstarc=p;r=G-adjlist[a-0].firstarc;printf(%c,G-adjlist[a-0].firstarc-adjvex);fprintf(fp,%c,G-adjlist[a-0].firstarc-adjvex);}else{p=(ArcNode *)malloc(sizeof(ArcNode)); p-adjvex=b;r-nextarc=p; printf(%c,r-nextarc-adjvex);fprintf(fp,%c,r-nextarc-adjvex);r=p;}r-nextarc=NULL;fscanf(outFile,%c,b);}}printf(\n);fprintf(fp,\n);}}void DFS(ALGraph *G,char v)//深度优先遍历递归处理{ArcNode *p; visited[v-0]=1;printf(%c ,v);p=G-adjlist[v-0].firstarc;while(p!=NULL){if(visited[p-adjvex-0]==0)DFS(G,p-adjvex);p=p-nextarc;}}void DFS1(ALGraph *G,char v)//深度优先遍历非递归处理{ArcNode *p;ArcNode *s[MAXV];int visited[MAXV]={0};char i;int top=0;printf( %c ,v);s[top++]=G-adjlist[v-0].firstarc;visited[v-0]=1;while(top!=0){p=s[--top];if(p!=NULL){s[top++]=p-nextarc;i=p-adjvex;if(visited[i-0]==0){visited[i-0]=1;printf( %c ,i);s[top++]=G-adjlist[i-0].firstarc;}}}}void BFS(ALGraph *G,char v)//广度优先遍历的非递归处理{ ArcNode *p; in
文档评论(0)