数据结构实验报告图实验.docx
- 文档编号:4845511
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:10
- 大小:15.66KB
数据结构实验报告图实验.docx
《数据结构实验报告图实验.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告图实验.docx(10页珍藏版)》请在冰豆网上搜索。
数据结构实验报告图实验
GEGROUPsystemofficeroom【GEIHUA16H-GEIHUAGEIHUA8Q8-GEIHUA1688】
数据结构实验报告图实验
图实验
一,邻接矩阵的实现
1.实验目的
(1)掌握图的逻辑结构
(2)掌握图的邻接矩阵的存储结构
(3)验证图的邻接矩阵存储及其遍历操作的实现
2.实验内容
(1)建立无向图的邻接矩阵存储
(2)进行深度优先遍历
(3)进行广度优先遍历
3.设计与编码
MGraph.h
#ifndefMGraph_H
#defineMGraph_H
constintMaxSize=10;
template
classMGraph
{
public:
MGraph(DataTypea[],intn,inte);
~MGraph(){
}
voidDFSTraverse(intv);
voidBFSTraverse(intv);
private:
DataTypevertex[MaxSize];
intarc[MaxSize][MaxSize];
intvertexNum,arcNum;
};
#endif
MGraph.cpp
#include
usingnamespacestd;
#include"MGraph.h"
externintvisited[MaxSize];
template
MGraph
:
MGraph(DataTypea[],intn,inte)
{
inti,j,k;
vertexNum=n,arcNum=e;
for(i=0;i vertex[i]=a[i]; for(i=0;i for(j=0;j arc[i][j]=0; for(k=0;k { cout<<"Pleaseentertwovertexsnumberofedge: "; cin>>i>>j; arc[i][j]=1; arc[j][i]=1; } } template voidMGraph : DFSTraverse(intv) { cout< visited[v]=1; for(intj=0;j if(arc[v][j]==1&&visited[j]==0) DFSTraverse(j); } template voidMGraph : BFSTraverse(intv) { intQ[MaxSize]; intfront=-1,rear=-1; cout< visited[v]=1; Q[++rear]=v; while(front! =rear) { v=Q[++front]; for(intj=0;j if(arc[v][j]==1&&visited[j]==0){ cout< visited[j]=1; Q[++rear]=j; } } } MGraph_main.cpp #include usingnamespacestd; #include"MGraph.h" externintvisited[MaxSize]; template MGraph : MGraph(DataTypea[],intn,inte) { inti,j,k; vertexNum=n,arcNum=e; for(i=0;i vertex[i]=a[i]; for(i=0;i for(j=0;j arc[i][j]=0; for(k=0;k { cout<<"Pleaseentertwovertexsnumberofedge: "; cin>>i>>j; arc[i][j]=1; arc[j][i]=1; } } template voidMGraph : DFSTraverse(intv) { cout< visited[v]=1; for(intj=0;j if(arc[v][j]==1&&visited[j]==0) DFSTraverse(j); } template voidMGraph : BFSTraverse(intv) { intQ[MaxSize]; intfront=-1,rear=-1; cout< visited[v]=1; Q[++rear]=v; while(front! =rear) { v=Q[++front]; for(intj=0;j if(arc[v][j]==1&&visited[j]==0){ cout< visited[j]=1; Q[++rear]=j; } } } 4.运行与测试 5.总结与心得 通过该实验的代码编写与调试,熟悉了邻接矩阵在图结构中的应用,在调试过程中遇到很多的问题,在解决问题过程中也使我的写代码能力得到提升 二,邻接表的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接表存储结构 (3)验证图的邻接表存储及其遍历操作的实现 2.实验内容 (1)建立一个有向图的邻接表存储结构 (2)对建立的有向图进行深度优先遍历 (3)对建立的有向图进行广度优先遍历 3.设计与编码 ALGraph.h #ifndefALGraph_H #defineALGraph_H constintMaxSize=10; structArcNode { intadjvex; ArcNode*next; }; template structVertexNode { DataTypevertex; ArcNode*firstedge; }; template classALGraph { public: ALGraph(DataTypea[],intn,inte); ~ALGraph(); voidDFSTraverse(intv); voidBFSTraverse(intv); private: VertexNode intvertexNum,arcNum; }; #endif ALGraph.cpp #include usingnamespacestd; #include"ALGraph.h" externintvisited[MaxSize]; template ALGraph : ALGraph(DataTypea[],intn,inte) { ArcNode*s; inti,j,k; vertexNum=n;arcNum=e; for(i=0;i { adjlist[i].vertex=a[i]; adjlist[i].firstedge=NULL; } for(k=0;k { cout<<"Pleaseentertheedgeoftheserialnumberoftwovertices: "; cin>>i>>j; s=newArcNode;s->adjvex=j; s->next=adjlist[i].firstedge; adjlist[i].firstedge=s; } } template ALGraph : ~ALGraph() { ArcNode*p=NULL; for(inti=0;i { p=adjlist[i].firstedge; while(p! =NULL) { adjlist[i].firstedge=p->next; deletep; p=adjlist[i].firstedge; } } } template voidALGraph : DFSTraverse(intv) { ArcNode*p=NULL;intj; cout< visited[v]=1; p=adjlist[v].firstedge; while(p! =NULL) { j=p->adjvex; if(visited[j]==0)DFSTraverse(j); p=p->next; } } template voidALGraph : BFSTraverse(intv) { intQ[MaxSize]; intfront=-1,rear=-1; ArcNode*p=NULL; cout< while(front! =rear) { v=Q[++front]; p=adjlist[v].firstedge; while(p! =NULL) { intj=p->adjvex; if(visited[j]==0){ cout< } p=p->next; } } } ALGraph_main.cpp #include usingnamespacestd; #include"ALGraph.cpp" intvisited[MaxSize]={0}; intmain() { charch[]={'A','B','C','D','E'}; inti; ALGraph for(i=0;i visited[i]=0; cout<<"Depth-firsttraversesequenceis: "; ALG.DFSTraverse(0); cout< for(i=0;i visited[i]=0; cout<<"Breadth-firsttraversesequenceis: "; ALG.BFSTraverse(0); cout< return0; } 4.运行与调试 5.总结与心得 通过该实验,掌握了图的邻接表存储结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 报告