资源简介

采用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


评论

共有 条评论