图形数据结构实验
更新时间:2024-04-26 04:46:01 阅读量: 综合文库 文档下载
淮海工学院计算机科学系
实验报告书
课程名: 《数据结构》
题 目: 图形数据结构实验
班 级: 学 号: 姓 名:
评语: 成绩: 指导教师: 批阅时间: 年 月 日
《 数据结构 》实验报告 - 1 -
图形数据结构实验报告要求
1目的与要求:
1)掌握图的邻接矩阵、邻接表、十字链表、邻接多重链表存储结构表示及其创建算法的c语言实现;
2)掌握图的深度优先搜索遍历算法和图的广度优先搜索遍历算法及C语言实现; 3)掌握AOV-网普里姆构造最小生成树算法的数据结构和算法实现; 4)掌握AOE-网关路经的生成算法和实现;
5)按照实验题目要求独立正确地完成实验内容(提交程序清单及相关实验数据与运行结果);
6)认真书写实验报告,并按时提交(第12周周一提交)。
2 实验内容或题目
题目: 一、图形数据结构实验——图的建立与遍历。 内容:
1) 使用邻接矩阵和邻接表储表示分别实现如下给定的图1和或图2所示图的物理存储结
构。
2) 在1)所建立的图形存储结构上分别实现深度优先搜索遍历和广度优先搜索遍历,并
给出遍历结果(序列)。
V1 V2 V3 V4 V5 V6 V7 V8 图1 无向图
《 数据结构 》实验报告 - 2 -
V1 V2 V3 V4 V5 V6 V7 V8 例2 有向图
题目:二、连通网的最小生成树及其应用实验(选做)
内容:对下图所示通信连通网,按照普里姆算法实现其最小生成树。
V1
6 V2
5 1 v4
5 v3
5 4 6 2
v6
3 v5
6 通信连通网(权值单位:百万元)
3 实验步骤与源程序
#include
《 数据结构 》实验报告 - 3 -
#define MaxVertexNum 10 int visited[MaxVertexNum]; int visitde[MaxVertexNum]; typedef struct edgenode {
int adjvex;
struct edgenode *next; }edgenode;
typedef struct vexnode {
int data;
edgenode *link; }vexnode;
typedef struct {
vexnode vertex[MaxVertexNum]; int vexnum,arcnum; }AdjList;
void creat_wxdjlist(AdjList *G)//邻接表建立有向图 {
edgenode *s; int i,j,k;
printf(\请输入图的结点数和边数:\\n\
scanf(\printf(\请输入图的结点:\\n\ for(i=0;i
getchar();
scanf(\ G->vertex[i].link=NULL; visited[i]=0; visitde[i]=0; }
printf(\请输入每条边对应的两个顶点的序号(输入格式为:i,j):\\n\for(k=0;k
getchar();
printf(\请输入第%d条边的顶点序号:\ scanf(\
s=(edgenode *)malloc(sizeof(edgenode)); s->adjvex=j-1;
s->next=G->vertex[i-1].link;//采用头插法 G->vertex[i-1].link=s; }
《 数据结构 》实验报告 - 4 -
}
void Dfsjb_visit(AdjList G,int i)//深度遍历有向图 {
edgenode *p;
if(visited[i]==0) {
printf(\}
visited[i]=1;
p=G.vertex[i].link; while(p!=NULL) {
if(visited[p->adjvex]==0) Dfsjb_visit(G,p->adjvex); p=p->next; } }
void Bfsljb_visit(AdjList G,int n)//广度遍历有向图 {
int i,front ,rear,q[MaxVertexNum]; edgenode *p; front=-1; rear=-1;
if(visitde[n]==0) {
printf(\}
visitde[n]=1; rear=rear+1; q[rear]=n;
while(rear!=front) {
front=front+1; i=q[front];
p=G.vertex[i].link; while(p!=NULL) {
if(visitde[p->adjvex]==0) {
printf(\ visitde[p->adjvex]=1; rear=rear+1;
q[rear]=p->adjvex;
《 数据结构 》实验报告 - 5 -
}
p=p->next; } } }
typedef struct {
int vexs[MaxVertexNum];
int edges[MaxVertexNum][MaxVertexNum]; int n,e;
}MGraph;
void CreateMGraph(MGraph *G) //邻接矩阵建立无向图 {
int i,j,k,m,n;
printf(\请输入顶点数和边数:\\n\ scanf(\
printf(\请输入顶点信息每个顶点以回车作为结束:\\n\ for(i=0;i
getchar();
scanf(\ visited[i]=0; visitde[i]=0; }
for(i=0;i
printf(\请输入每条边对应的两个顶点的序号(输入格式为:i,j):\\n\ for(k=0;k
getchar();
printf(\请输入第%d条边的顶点序号:\ scanf(\
G->edges[m-1][n-1]=G->edges[m-1][n-1]=1; } }
void DFSM(MGraph G,int i) //深度遍历无向图 {
int j;
if(visited[i]==0) {
printf(\
《 数据结构 》实验报告 - 6 -
visited[i]=1; }
for(j=0;j if((G.edges[i][j]==1 )&&( visited[j]==0)) DFSM(G,j); } void Bfsjz_visit(MGraph G,int k)//广度遍历无向图 { int i,j,front,rear,q[MaxVertexNum]; front=-1;rear=-1; if(visitde[k]==0) { printf(\ visitde[k]=1; } rear=rear+1; q[rear]=k; while(rear!=front) { front=front+1; i=q[front]; for(j=0;j<=G.n;j++) { if((G.edges[i][j]==1)&&(visitde[j]==0)) { printf(\ visitde[j]=1; rear=rear+1; q[rear]=j; } } } } void main() { int j,m; printf(\邻接表建立有向图*******************\\n\ AdjList q; creat_wxdjlist(&q); printf(\从结点Vi开始深度优化请输入i:\scanf(\--j; printf(\深度优化搜索为:\\n\for(m=0;m 《 数据结构 》实验报告 - 7 - Dfsjb_visit(q,j); j++; } printf(\从结点Vi开始广度搜索请输入i:\scanf(\ --j; printf(\广度搜索为:\\n\for(m=0;m Bfsljb_visit(q,j); j++; } printf(\邻接矩阵建立无向图**********************\\n\MGraph p; CreateMGraph(&p); printf(\从结点Vi开始深度优化请输入i:\scanf(\--j; printf(\深度优化搜索为:\\n\DFSM(p,j) ; printf(\从结点Vi开始广度搜索请输入i:\scanf(\ --j; printf(\广度搜索为:\\n\ Bfsjz_visit(p,j); } 4 测试数据与实验结果(可以抓图粘贴) 《 数据结构 》实验报告 - 8 - 5 结果分析与实验体会 通过这次的实验我基本上 掌握了图的邻接矩阵及邻接表的建立与基本操作的实现,进一步地了解了图的邻接矩阵的物理储存结构,基于本次实验使我对邻接矩阵和邻接表的深度优先搜索遍历算法和图的广度优先搜索遍历算法有了很好的了解.
正在阅读:
图形数据结构实验04-26
客户关系与毕业生调查报告07-21
中考 - 生物 - 绿色植物 - 测试题 - 0106-14
2014年新课标全国II卷优秀作文欣赏10-18
交通大学轨道交通专业铁路信号复习题库01-26
2013年春期末五年级语文(定稿)09-25
高中语文第3单元第10课谈中国诗(第1课时)针对性训练新人教版必修512-02
医院分管领导个人德能勤绩述职述廉报告09-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 图形
- 实验
- 2017新苏教版小学六年级总复习知识点整理
- 13我 的 心 情陈赛艳
- 综合练习2答案(2)
- 入院、出院、转科、转院、留观管理规定及协调机制
- 做好青年思想引导工作是共青团的根本任务
- 医学生开题报告考核小组决议
- 物理必修7.5《探究弹性势能的表达式》教案
- 2018-2019年沭阳县颜集文德学校一年级上册语文复习题无答案
- 第二章第一节荒漠化的防治第一课时
- 中小企业管理案例分析
- 电气注册考试供配电案例试题复习提纲
- 精益化改善的步骤 - 图文
- 005第五章外汇与汇率—F
- 华中电力系统调度管理规程
- 课程设计开题报告
- 华南农业大学大学物理B复习资料试题
- 多传感器信息融合与CAN总线技术在煤矿井下环境监测中的应用
- 广东教育技术能力中级培训模块一到四测评试题答案
- 2012年信息技术中考综合理论题
- 凸函数及其应用毕业论文