资源简介
采用Dijkstra算法,实现校园最短路径,资源包内包含源代码和文档说明~
功能:
(1) 输出顶点信息:将校园内各位置输出。
(2)输出边的信息:将校园内每两个位置(若两个位置之间有边)的距离输出。
(3) 修改:修改两个位置(若两个位置之间有边)的距离,并重新输出每两个位置(若两个位置之间有边)的距离;
(4) 求最短路径:输出给定两点之间的最短路径的长度及途经的地点或输出任意一点与其他各点的最短路径。
(5)删除:删除一条有效边。
(6)插入:插入一条有效边。

代码片段和文件信息
#include
#include //引入标准库中的头文件
#include “graph.h“ //引入头文件
using namespace std;
/* 前置条件:图不存在
输入:无
功能:图的初始化
输出:无
后置条件:构造一个有值的图
*/
Graph::Graph(int* astring* v int n ) //构造图
{
int ij;
vertexNum=n; //顶点数
for (i=0; i for (j=0; j arc[i][j] = 10000;//无效边值为10000
for ( i=0; i vertex[i]=v[i]; //存储顶点信息
for (i=0; i for (j=0; j arc[i][j]=*(a+i*n+j);
}
/* 前置条件:图已存在
输入:无
功能:输出图中所有顶点的数据信息
输出:图中所有顶点的数据信息
后置条件:图保持不变
*/
void Graph::PutOutVexInfo() //取顶点
{
int i=0; //假设源点是第0个顶点,即顶点序号是0
if (i>=vertexNum) throw “位置“; //错误抛出异常
else
{
for(i=0;i cout< }
}
/* 前置条件:图已存在
输入:无
功能:输出图中所有的边
输出:图中所有顶点的数据信息
后置条件:图保持不变
*/
void Graph::PutOutArcInfo() //输出图中所有的边
{
int i=0; //假设源点是第0个顶点,即顶点序号是0
int j=0;
if ( i>=vertexNum|| j>=vertexNum) throw “位置“; //错误抛出异常
else
{ for(i=0;i for(j=0;j if(arc[i][j]<10000) //两点之间存在路径
cout<<“从 “< }
}
}
}
/* 前置条件:图已存在
输入:顶点v1v2
功能:修改顶点v1、v2的距离
输出:修改后图中所有的距离
后置条件:图保持不变
*/
void Graph::SetArc(int v1int v2int arclength) //修改距离
{ //假设源点是第0个顶点,即顶点序号是0
if ( v1==v2 || v1>=vertexNum || v2>=vertexNum) throw “位置“; //错误抛出异常
else
{ arc[v1][v2]=arclength; //修改v1顶点到v2顶点的距离
arc[v2][v1]=arclength;
}
}
/* 前置条件:图已存在
输入:顶点v ,endv
功能:假如endv存在,求v到endv的最短路径;假如不输入endv,则求v到任意顶点的最短路径
输出:所求得的最短路径及所经历的位置
后置条件:图保持不变
*/
void Graph::Dijkstra(int vint endv) //求最短路径,从v顶点到endv点的最短路径
{
if (v>=vertexNum) throw “位置“; //v顶点或endv顶点输出不正确则抛出异常
int numv=vertexNum; //顶点数
int dist[MaxSize]; //最短长度
int path[MaxSize]; //当前找到的最短路径
int s[MaxSize]; //存放源点和已生成的终点的集合
int max= 10000; //代表无穷大
int ijkwm;
f
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 557145 2015-03-13 20:13 图—校园最短路径问题\代码\Debug\graph.exe
文件 797044 2015-03-13 20:13 图—校园最短路径问题\代码\Debug\graph.ilk
文件 10823 2015-03-12 23:01 图—校园最短路径问题\代码\Debug\graph.obj
文件 2194056 2015-03-13 20:13 图—校园最短路径问题\代码\Debug\graph.pch
文件 1115136 2015-03-13 20:13 图—校园最短路径问题\代码\Debug\graph.pdb
文件 280130 2015-03-13 20:13 图—校园最短路径问题\代码\Debug\graphmain.obj
文件 82944 2015-03-13 20:16 图—校园最短路径问题\代码\Debug\vc60.idb
文件 110592 2015-03-13 20:13 图—校园最短路径问题\代码\Debug\vc60.pdb
文件 6939 2015-03-13 20:52 图—校园最短路径问题\代码\graph.cpp
文件 4526 2005-03-27 10:25 图—校园最短路径问题\代码\graph.dsp
文件 533 2005-03-27 09:30 图—校园最短路径问题\代码\graph.dsw
文件 1175 2015-03-13 20:13 图—校园最短路径问题\代码\graph.h
文件 50176 2015-03-13 20:58 图—校园最短路径问题\代码\graph.ncb
文件 48640 2015-03-13 20:58 图—校园最短路径问题\代码\graph.opt
文件 894 2015-03-13 20:13 图—校园最短路径问题\代码\graph.plg
文件 5189 2015-03-13 20:12 图—校园最短路径问题\代码\graphmain.cpp
文件 751104 2015-03-13 20:58 图—校园最短路径问题\校园最短路径的设计文档.doc
目录 0 2015-04-10 22:54 图—校园最短路径问题\代码\Debug
目录 0 2015-04-10 22:54 图—校园最短路径问题\代码
目录 0 2015-04-10 22:54 图—校园最短路径问题
----------- --------- ---------- ----- ----
6017046 20
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- 学校超市选址问题(数据结构C语言版
- VC++MFC小游戏实例教程(实例)+MFC类库
- 数据结构,迷宫问题C语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
评论
共有 条评论