图的遍历运算实验报告.doc

图的遍历运算实验报告.doc

ID:57643239

大小:110.50 KB

页数:6页

时间:2020-08-29

图的遍历运算实验报告.doc_第1页
图的遍历运算实验报告.doc_第2页
图的遍历运算实验报告.doc_第3页
图的遍历运算实验报告.doc_第4页
图的遍历运算实验报告.doc_第5页
资源描述:

《图的遍历运算实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件技术基础实验六-----图的遍历运算班级:电信0901学号:0703090106姓名:蒋玮珂实验六图的遍历运算(1)实验题目:编写一个程序,实现图的遍历运算,在此基础上设计一个主程序完成如下功能(1)从指定顶点开始的深度优先遍历(递归实现)(2)从指定顶点开始的深度优先遍历(非递归实现)(3)从指定顶点开始的广度优先遍历(2)实验目的:1、掌握图的数据类型描述及特点。2、掌握图的存储结构(邻接表和邻接矩阵)。3、掌握图的遍历算法的实现。(3)调试通过并正确执行给定功能要求的实验代码#include"stdafx.h"#include#include

2、#include#defineMAXVEX100typedefcharVertexType[3];typedefstructedgenode{intadjvex;intvalue;structedgenode*next;}ArcNode;typedefstructvexnode{VertexTypedata;ArcNode*firstarc;}VHeadNode;typedefstructvertex{intadjvex;VertexTypedata;}VType;typedefstructgraph{intn,e;VTypeve

3、xs[MAXVEX];intedges[MAXVEX][MAXVEX];}AdjMatix;typedefstruct{intn,e;VHeadNodeadjlist[MAXVEX];}AdjList;//将邻接矩阵g转化成邻接表G:voidMatToList(AdjMatixg,AdjList*&G){inti,j;ArcNode*p;G=(AdjList*)malloc(sizeof(AdjList));for(i=0;iadjlist[i].firstarc=NULL;strcpy(G->adjlist[i].data,g.vexs[i]

4、.data);}for(i=0;i=0;j--)if(g.edges[i][j]!=0){p=(ArcNode*)malloc(sizeof(ArcNode));p->value=g.edges[i][j];p->adjvex=j;p->next=G->adjlist[i].firstarc;G->adjlist[i].firstarc=p;}G->n=g.n;G->e=g.e;}//广度优先:voidBFS(AdjList*G,intvi,FILE*fp3){inti,v,visited[MAXVEX];chars;int

5、Qu[MAXVEX],front=0,rear=0;ArcNode*p;for(i=0;in;i++)visited[i]=0;s=vi+48;putc(s,fp3);visited[vi]=1;rear=(rear+1)%MAXVEX;Qu[rear]=vi;while(front!=rear){front=(front+1)%MAXVEX;v=Qu[front];p=G->adjlist[v].firstarc;while(p!=NULL){if(visited[p->adjvex]==0){visited[p->adjvex]=1;s=p->adjvex+

6、48;putc(s,fp3);rear=(rear+1)%MAXVEX;Qu[rear]=p->adjvex;}p=p->next;}}}//深度优先递归:intvisited[MAXVEX];voidDFS(AdjList*g,intvi,FILE*fp3){ArcNode*p;chars;s=vi+48;putc(s,fp3);visited[vi]=1;p=g->adjlist[vi].firstarc;while(p!=NULL){if(visited[p->adjvex]==0)DFS(g,p->adjvex,fp3);p=p->next;}}//深度优先非递

7、归:voidDFS1(AdjList*G,intvi,FILE*fp3){ArcNode*p;ArcNode*St[MAXVEX];inttop=-1,v;chars;s=vi+48;putc(s,fp3);visited[vi]=1;top++;St[top]=G->adjlist[vi].firstarc;while(top>-1){p=St[top];top--;while(p!=NULL){v=p->adjvex;if(visited[v]==0){s=v+48;putc(s,fp3);visited[v]=1;top++;St[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。