• 大小: 1.87MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-02
  • 语言: 其他
  • 标签:

资源简介

迪杰斯特拉算法有详细的试验报告 可以动态演示,已通过课程设计,资源特别棒 下载不后悔

资源截图

代码片段和文件信息

#include
#include    
#include
#include//导入要用的包


#define n  5 //定义节点数为5
#define Max 1000//将最大值Max设为1000
int cost[n][n];//建立一个存储权值的二维数组
int path[n];//存储路径的数组


void graph()
{
    
initgraph(700610);
setbkcolor(LIGHTGRAY);
cleardevice();
setcolor(BLUE);
    circle(35015050);
    circle(15025050);
circle(25055050);
circle(55045050);
circle(55025050);
line(350150150250);
line(150250250550);
line(250550550450);
line(550450550250);
line(550250350150);
line(350150550450);
    line(250550550250);
    outtextxy(250200_T(“10“));
outtextxy(200400_T(“50“));
outtextxy(400500_T(“20“));
outtextxy(550350_T(“60“));
outtextxy(450200_T(“100“));
outtextxy(450300_T(“30“));
outtextxy(400400_T(“10“));
outtextxy(350150_T(“0“));
outtextxy(150250_T(“1“));
outtextxy(250550_T(“2“));
outtextxy(550450_T(“3“));
outtextxy(550250_T(“4“));


}//绘制一个图,并标出权值和节点名称
void Draw(int path[]int m[])//通过最短路径绘图函数
{
      setcolor(RED);//连线用红色线
for(int i=0;i
int a=m[i];//将j的值赋给a
    int s1=a*10+path[a];//通过此公式表示将要连线的两个节点
    Sleep(1500);//延时1500ms
            switch(s1)
{    
case 01:case 10:line(350150150250); break; //如果s1=01||10,连接0-1
case 04:case 40:line(550250350150);break;  //如果s1=04||40,连接0-4
case 03:case 30:line(350150550450);break;   //如果s1=03||30,连接0-3
case 12:case 21:line(150250250550); break; //如果s1=21||12,连接1-2
case 23:case 32:line(250550550450);  break; //如果s1=23||32,连接2-3
case 42:case 24:line(250550550250); break; //如果s1=24||42,连接2-4
case 34:case 43:line(550450550250); break;  //如果s1=34||43,连接3-4
default:break;
}


}
}




void shortpath(int v)
{
int ijkwmtemp;
int path[n];
int m[n];
int dist[n];
int s[n];
for(i=0;i {
dist[i]=cost[v][i];//将原点到其它节点直接相连的权值赋给dist[]
if(dist[i]!=Max)//表示原点与节点i有直接连线
{
path[i]=v;//i的前一个节点为v
}
else 
{
path[i]=-1;//否则i之间没有节点
}
s[i]=0;//表示i没有找到最短路径
}
s[v]=1;//原点已经找到最短路径
dist[v]=0;//将原点排除在外
for(k=0;k {
wm=Max;
for(i=0;i {
if(!s[i]&&dist[i] {
j=i;
    wm=dist[i];
}
}
s[j]=1;//表示节点j已经找到最短路径
        m[k]=j;//将j的值赋给m[k]
for(i=0;i {
if(!s[i]&&dist[j]+cost[j][i] {
dist[i]=dist[j]+cost[j][i];
path[i]=j;//如果有,刷新为新的路径,并表示i的前一个节点为j
}
}

}

for(i=0;i {
int a=1;
cout< cout< cout<<“路径:“< temp=path[i];
 


while(temp!=-1)  
{
cout<<“<——“<
temp=path[temp];
}
cout< }
getch();
    graph();
    Draw(pathm);
    getch();

}


int main()
{  
int v;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     278598  2013-12-11 10:13  迪杰斯特拉\Debug\3.exe

     文件     400284  2013-12-11 10:13  迪杰斯特拉\Debug\3.ilk

     文件      12146  2013-12-11 10:13  迪杰斯特拉\Debug\3.obj

     文件     640000  2013-12-11 10:13  迪杰斯特拉\Debug\3.pdb

     文件     352329  2013-12-13 19:58  迪杰斯特拉\Debug\Cpp1.exe

     文件     580400  2013-12-13 19:58  迪杰斯特拉\Debug\Cpp1.ilk

     文件      23818  2013-12-13 19:58  迪杰斯特拉\Debug\Cpp1.obj

     文件     697344  2013-12-13 19:58  迪杰斯特拉\Debug\Cpp1.pdb

     文件     184393  2013-12-12 21:36  迪杰斯特拉\Debug\Cpp2.exe

     文件     185476  2013-12-12 21:36  迪杰斯特拉\Debug\Cpp2.ilk

     文件       7881  2013-12-12 21:36  迪杰斯特拉\Debug\Cpp2.obj

     文件     476160  2013-12-12 21:29  迪杰斯特拉\Debug\Cpp2.pdb

     文件      25600  2013-12-11 23:54  迪杰斯特拉\Debug\dj.pdb

     文件     352330  2013-12-15 20:36  迪杰斯特拉\Debug\graph.exe

     文件     580400  2013-12-15 20:36  迪杰斯特拉\Debug\graph.ilk

     文件      23810  2013-12-15 20:36  迪杰斯特拉\Debug\graph.obj

     文件     697344  2013-12-15 20:36  迪杰斯特拉\Debug\graph.pdb

     文件     307275  2013-12-15 22:40  迪杰斯特拉\Debug\Text14.exe

     文件     520284  2013-12-15 22:40  迪杰斯特拉\Debug\Text14.ilk

     文件      23280  2013-12-15 22:40  迪杰斯特拉\Debug\Text14.obj

     文件     705536  2013-12-15 20:43  迪杰斯特拉\Debug\Text14.pdb

     文件     246784  2014-01-07 21:09  迪杰斯特拉\Debug\vc60.idb

     文件     151552  2013-12-18 21:26  迪杰斯特拉\Debug\vc60.pdb

     文件     303183  2014-01-07 21:09  迪杰斯特拉\Debug\迪杰斯特拉.exe

     文件     497228  2014-01-07 21:09  迪杰斯特拉\Debug\迪杰斯特拉.ilk

     文件      23465  2014-01-07 21:09  迪杰斯特拉\Debug\迪杰斯特拉.obj

     文件     713728  2013-12-18 21:26  迪杰斯特拉\Debug\迪杰斯特拉.pdb

     文件      35328  2013-12-15 16:49  迪杰斯特拉\数据结构报告\[0]封面.doc

     文件      20480  2013-12-16 20:53  迪杰斯特拉\数据结构报告\[1]目录.doc

     文件     261632  2014-06-10 21:23  迪杰斯特拉\数据结构报告\[2]报告正文.doc

............此处省略13个文件信息

评论

共有 条评论