数据结构图的建立和遍历

数据结构图的建立和遍历

ID:33766737

大小:142.00 KB

页数:8页

时间:2019-03-01

数据结构图的建立和遍历_第1页
数据结构图的建立和遍历_第2页
数据结构图的建立和遍历_第3页
数据结构图的建立和遍历_第4页
数据结构图的建立和遍历_第5页
资源描述:

《数据结构图的建立和遍历》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程名称:数据结构开课实验室:计算中心204室2011年10月日年级、专业、班学号姓名成绩实验项目名称图的建立和遍历指导教师教师评语教师签名:年月日一、实验内容和目的目的:撑握图的建立和遍历,熟悉图的建立和输出,还有两种遍历(深度和广度优先遍历)。内容:编出图的程序,能够体图的性质、内容和算法。二、上机实验环境计算中心204;操作系统:MicrosoftVisualC++;软件平台:MicrosoftVisualC++三、上机操作方法、步骤打开计算机进入WindowsXP→在桌面建立自己的工作目录→进入MicrosoftVisua

2、lC++6.0→文件/新建/文件/C++SourceFile/位置/命名→输入源程序→编译/组建→运行。四、设计分析:图是一种复杂的非线性结构。图结构在人工智能、计算机科学等领域有着广泛的运用。学好它就得了解结点之间的关系是线性关系,除开始结点和终端结点外,每个结点只有一个直接前趋和直接后继。在图结构中,对结点的前趋和后继个数都不加限制的,即结点之间的关系是任意的。#include#include#definemaxnode30#definenull0-8-#definem20typedefs

3、tructst_arc{intadjvex;intweight;structst_arc*nextarc;}arcnode;typedefstruct{intvertex;structst_arc*firstarc;}vernode;typedefvernodeadjlist[maxnode];intqueue[maxnode];voiddfs(adjlistg,intk,intvisited[])//从顶点K出发深度优先搜索{arcnode*p;intw;visited[k]=1;printf("%d",g[k].vertex)

4、;p=g[k].firstarc;while(p!=null){w=p->adjvex;if(visited[w]==0)-8-dfs(g,w,visited);p=p->nextarc;}}voidbfs(adjlistg,intk,intvisited[])//从顶点K出发广度优先搜索{intfront=0,rear=1,w;arcnode*p;visited[k]=1;//访问初始顶点printf("%d",k);queue[rear]=k;//初始顶点入队列while(front!=rear){front=(front+1

5、)%m;w=queue[front];//按访问次序依次出队列p=g[w].firstarc;while(p!=null){if(visited[p->adjvex]==0){visited[p->adjvex]=1;printf("%d",p->adjvex);rear=(rear+1)%m;queue[rear]=p->adjvex;;}p=p->nextarc;-8-}}}voidtrave_bfs(adjlistg,intn)//数组visited标志图中的顶点是否已被访问{inti,visited[maxnode];fo

6、r(i=1;i<=n;i++)visited[i]=0;for(i=1;i<=n;i++)if(visited[i]==0)bfs(g,i,visited);}voidtrave_dfs(adjlistg,intn)//数组visited标志图中的顶点是否已被访问{inti,visited[maxnode];for(i=1;i<=n;i++)visited[i]=0;for(i=1;i<=n;i++)if(visited[i]==0)dfs(g,i,visited);}voidprint(adjlistg,intn)-8-{arc

7、node*q;inti;printf("输出的是所建立无向图的邻接表结构:");for(i=1;i<=n;i++){printf("t%dt",i);printf("%d->",g[i].vertex);q=g[i].firstarc;while(q!=null){printf("%d,",q->adjvex);printf("%d->",q->weight);q=q->nextarc;}printf("Null");printf("");}}voidmain(){arcnode*p,*q;adjlistg;inti,

8、j,n,k,w,e;printf("请输入建立的无向图所包含的顶点总个数和总边数(用逗号隔开):");-8-scanf("%d,%d",&n,&e);for(k=1;k<=n;k++){getchar();printf("t输入每个顶点的信息,必

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

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

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