- 107
- 0
- 约5.97千字
- 约 17页
- 2017-04-21 发布于湖北
- 举报
数据结构 实验一 图精要
北京邮电大学信息与通信工程学院
第 PAGE 17页
北京邮电大学电信工程学院
第 PAGE 1页
数据结构实验报告
实验名称: 实验二——图
学生姓名: 佘晨阳
班 级: 2014211117
班内序号: 20
学 号: 2014210491
日 期: 2015年12月05日
1.实验要求
根据图的抽象数据类型的定义,使用邻接矩阵或邻接表实现一个图。
图的基本功能:
1、图的建立
2、图的销毁
3、深度优先遍历图
4、广度优先遍历图
5、使用普里姆算法生成最小生成树
6、使用克鲁斯卡尔算法生成最小生成树
7、求指定顶点到其他各顶点的最短路径
8、其他:比如连通性判断等自定义操作
编写测试main()函数测试图的正确性
2. 程序分析
本实验要求掌握图基本操作的实现方法,了解最小生成树的思想和相关概念,了解最短路径的思想和相关概念,学习使用图解决实际问题的能力。
2.1 存储结构
存储结构:1.不带权值的无向图邻接矩阵
2.带权值的无向图邻接矩阵
3.带权值的有向图邻接矩阵
1.不带权值的无向图邻接矩阵
2带权值的无向图邻接矩阵.
3.带权值的有向图邻接矩阵
[备注]:
在使用打印元素、BFS、DFS 采用无权值的无向图邻接矩阵存储方式
在使用PRIM、KRUSKAL、
在使用最短路径的算法时采用具有权值的有向图邻接矩阵存储方式
2.2 关键算法分析
一.图的邻接矩阵构造函数:
1.关键算法:
templateclass f
Graphf::Graph(f a[], int n, int e) //带权值的图的构造函数
{
int i, j, k, height;
f s1, s2;
vnum = n;
arcnum = e;
for (k = 0; k n; k++) { vertex[k] = a[k]; } //初始化顶点
for (k = 0; kn; k++)
{
for (i = 0; i n; i++)
{
arc[k][i] = -1;
if (i == k) arc[k][i] = 0; //初始化权值的大小
}
visited[k] = 0;
}
cout endl;
for (k = 0; ke; k++) //初始化边
{
cout 请输入线性链接节点:;
cin s1 s2 height;
arc[convert(s1)][convert(s2)] = height;
arc[convert(s2)][convert(s1)] = arc[convert(s1)][convert(s2)]; //采用无向图带权值的邻接矩阵
}
cout endl;
cout 所得邻接矩阵为: endl;
for (k = 0; kn; k++)
{
for (i = 0; i n; i++)
{
if (arc[k][i] == -1)
cout ∞ ;
else cout arc[k][i] ; //打印邻接矩阵的格式
}
cout endl;
}
cout endl
2.算法的时间复杂度
有构造可知,初始化时其时间复杂度:O(n2)
二.深度优先便利DFS:
1.关键算法
①从某顶点v出发并访问
②访问v的第一个未访问的邻接点w,
访问w的第一个未访问的邻接点u,
……
③若当前顶点的所有邻接点都被访问过,则回溯,从上一级顶点的下一个未访问过的顶点开始深度优先遍历
④直到所有和v路径相通的顶点都被访问到;
2.代码图解:
深度优先遍历示意图
3.代码详解:
templateclass f
void Graphf::DFS(int v)
{
cout vertex[v];
visited[v] = 1;
for (int j = 0; j vnum; j++) //连通图
if ((visited[j] == 0) (arc[v][j] = 1)) DFS(j); //当存在回路时,则连通深一层遍历
}
4.时间复杂度
时间复杂度:O(n2)
空间复杂度:栈的深度O(n
您可能关注的文档
- 数据库使用讲座精要.ppt
- 数据库系统概念--第1章 数据库概述精要.ppt
- 数据库技术与应用—SQL-Server-2008(第2版)第4章.SQL-Server2008概述精要.ppt
- 数据库系统概论第二章数据库安全性ppt精要.ppt
- 数据库系统实验报告--图书馆管理系统oracle+java精要.doc
- 数据库系统概论第五章章数据库完整性ppt精要.ppt
- 数据库系统概论 5版 2016 chp01精要.pptx
- 数据库访问技术精要.ppt
- 数据库系统精要.ppt
- 数据库课程操作指导2.0精要.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 传媒法规与伦理教学课件(共22章)新闻伦理研究综述.pdf VIP
- 汽车行驶记录仪产品使用说明书.PDF VIP
- 2026年成都市美容医疗诊所医美项目安全规范运营可行性研究报告.docx VIP
- ocean培训petrel re快速入门工作流程.pdf VIP
- (四年级奥数班讲义.doc VIP
- 单病种病案数据填报指导手册.doc
- 企业 IPO 筹备方案(最新版,附时间表 + 材料).docx VIP
- 深圳初三数学联考模拟试题.docx VIP
- 高考历史二轮总复习精品课件 第四板块 世界现代史 第十七讲 现代科技的发展与当今世界发展的趋势.ppt VIP
- 2024年菏泽职业学院单招数学考试模拟试题及答案解析.docx VIP
原创力文档

文档评论(0)