数据结构实验报告图实验Word格式文档下载.docx

上传人:b****4 文档编号:17796268 上传时间:2022-12-10 格式:DOCX 页数:10 大小:15.66KB
下载 相关 举报
数据结构实验报告图实验Word格式文档下载.docx_第1页
第1页 / 共10页
数据结构实验报告图实验Word格式文档下载.docx_第2页
第2页 / 共10页
数据结构实验报告图实验Word格式文档下载.docx_第3页
第3页 / 共10页
数据结构实验报告图实验Word格式文档下载.docx_第4页
第4页 / 共10页
数据结构实验报告图实验Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据结构实验报告图实验Word格式文档下载.docx

《数据结构实验报告图实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告图实验Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

数据结构实验报告图实验Word格式文档下载.docx

classDataType>

classMGraph

{

public:

MGraph(DataTypea[],intn,inte);

~MGraph(){

}

voidDFSTraverse(intv);

voidBFSTraverse(intv);

private:

DataTypevertex[MaxSize];

intarc[MaxSize][MaxSize];

intvertexNum,arcNum;

};

#endif

MGraph.cpp

#include<

iostream>

usingnamespacestd;

#include"

MGraph.h"

externintvisited[MaxSize];

MGraph<

DataType>

:

MGraph(DataTypea[],intn,inte)

inti,j,k;

vertexNum=n,arcNum=e;

for(i=0;

i<

vertexNum;

i++)

vertex[i]=a[i];

i<

for(j=0;

j<

j++)

arc[i][j]=0;

for(k=0;

k<

arcNum;

k++)

{

cout<

<

"

Pleaseentertwovertexsnumberofedge:

;

cin>

>

i>

j;

arc[i][j]=1;

arc[j][i]=1;

}

voidMGraph<

DFSTraverse(intv)

cout<

vertex[v];

visited[v]=1;

for(intj=0;

if(arc[v][j]==1&

&

visited[j]==0)

DFSTraverse(j);

BFSTraverse(intv)

intQ[MaxSize];

intfront=-1,rear=-1;

Q[++rear]=v;

while(front!

=rear)

v=Q[++front];

for(intj=0;

j<

if(arc[v][j]==1&

visited[j]==0){

cout<

vertex[j];

visited[j]=1;

Q[++rear]=j;

}

MGraph_main.cpp

4.运行与测试

5.总结与心得

通过该实验的代码编写与调试,熟悉了邻接矩阵在图结构中的应用,在调试过程中遇到很多的问题,在解决问题过程中也使我的写代码能力得到提升

二,邻接表的实现

(2)掌握图的邻接表存储结构

(3)验证图的邻接表存储及其遍历操作的实现

(1)建立一个有向图的邻接表存储结构

(2)对建立的有向图进行深度优先遍历

(3)对建立的有向图进行广度优先遍历

3.设计与编码

ALGraph.h

#ifndefALGraph_H

#defineALGraph_H

structArcNode

intadjvex;

ArcNode*next;

structVertexNode

DataTypevertex;

ArcNode*firstedge;

classALGraph

ALGraph(DataTypea[],intn,inte);

~ALGraph();

VertexNode<

adjlist[MaxSize];

ALGraph.cpp

#include"

ALGraph.h"

ALGraph<

ALGraph(DataTypea[],intn,inte)

ArcNode*s;

vertexNum=n;

arcNum=e;

adjlist[i].vertex=a[i];

adjlist[i].firstedge=NULL;

Pleaseentertheedgeoftheserialnumberoftwovertices:

s=newArcNode;

s->

adjvex=j;

s->

next=adjlist[i].firstedge;

adjlist[i].firstedge=s;

~ALGraph()

ArcNode*p=NULL;

for(inti=0;

p=adjlist[i].firstedge;

while(p!

=NULL)

{

adjlist[i].firstedge=p->

next;

deletep;

p=adjlist[i].firstedge;

}

voidALGraph<

intj;

adjlist[v].vertex;

p=adjlist[v].firstedge;

while(p!

j=p->

adjvex;

if(visited[j]==0)DFSTraverse(j);

p=p->

p=adjlist[v].firstedge;

intj=p->

if(visited[j]==0){

adjlist[j].vertex;

visited[j]=1;

Q[++rear]=j;

p=p->

ALGraph_main.cpp

ALGraph.cpp"

intvisited[MaxSize]={0};

intmain()

charch[]={'

A'

'

B'

C'

D'

E'

inti;

ALGraph<

char>

ALG(ch,5,6);

MaxSize;

visited[i]=0;

Depth-firsttraversesequenceis:

ALG.DFSTraverse(0);

endl;

Breadth-firsttraversesequenceis:

ALG.BFSTraverse(0);

return0;

4.运行与调试

通过该实验,掌握了图的邻接表存储结构

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1