图形数据结构实验
更新时间:2023-03-11 07:36: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 结果分析与实验体会 通过这次的实验我基本上 掌握了图的邻接矩阵及邻接表的建立与基本操作的实现,进一步地了解了图的邻接矩阵的物理储存结构,基于本次实验使我对邻接矩阵和邻接表的深度优先搜索遍历算法和图的广度优先搜索遍历算法有了很好的了解.
正在阅读:
图形数据结构实验03-11
商务谈判-让步原则07-20
04第四册 隧道工程说明与计算规则(2017.7.2)-初稿-非修订版11-07
国三东风天锦故障码0559案例分析01-22
高二下家长会物理老师的发言稿06-04
恭喜大学录取的祝福短信05-22
检测技术期末复习10-01
一次有趣的冬令营作文800字06-23
科技公司培训协议范本2018最新整理版06-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 图形
- 实验
- 陕西省国资委监管的企业基本情况 - 图文
- 电气注册考试供配电案例试题复习提纲
- 统筹法计算工程量的基本原理
- 广暨广告宣传策划方案
- 凸函数及其应用毕业论文
- 二年级语文下教材分析教学计划及教学设计
- 2010考研政治真题答案及详细解析(完整版)
- 本科电子信息工程人才培养方案
- 产业组织复习题
- 医学生开题报告考核小组决议
- 网络基础练习题库
- 13我 的 心 情陈赛艳
- 毕业论文《浅析刑事案件侦查中证人拒证的原因及对策》
- 做好青年思想引导工作是共青团的根本任务
- 会计理论专题
- 005第五章外汇与汇率—F
- 第一章证券投资基金概述
- 汪洋中的一条船-郑丰喜(繁体完整版)
- 超实用的javascript代码段30道题目答案
- 2017年春季学期新版新人教版七年级数学下册10数据的收集整理与描述章末复习六数据的收集整理与描述习题