xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 4KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-06
  • 語(yǔ)言: C/C++
  • 標(biāo)簽: ??最短路徑??Dijkstra??

資源簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)與算法中圖求最短路徑,迪杰斯特拉算法的實(shí)現(xiàn),帶詳細(xì)注釋,可完整實(shí)現(xiàn)。

資源截圖

代碼片段和文件信息

#include?“stdio.h“
#define?MAXSIZE?20
#define?INFINITY?9999

typedef?struct?{
????char?vexs[MAXSIZE];//vertices?infoemation
????int?arcs[MAXSIZE][MAXSIZE];
????int?arcNum?vexNum;
}MGraph;

void?dijkstra(MGraph?G?int?v)?{
????int?dist[MAXSIZE];??????????????//dist[i]:源點(diǎn)到點(diǎn)?i?的路徑長(zhǎng)度
????int?path[MAXSIZE][MAXSIZE];?????//path[i][]:源點(diǎn)到點(diǎn)?i?經(jīng)過(guò)的頂點(diǎn)j下標(biāo)集合
????int?i?j?k?m?min?n?flag;
????
????for(i=0;?i????????for(j=0;?j????????????path[i][j]?=?-1;
????????}
????}
????
????for(i=0;?i????????dist[i]=G.arcs[v][i];????????????????//dist[]初始狀態(tài)為arcs[][]第v行
????????if(dist[i]!=0?&&?dist[i]!=INFINITY)?{//與源點(diǎn)?v?有關(guān)系的頂點(diǎn)第一個(gè)經(jīng)過(guò)的點(diǎn)為?v
????????????path[i][0]=v;
????????}
????}
????n=0;????????//打印最短路徑時(shí)對(duì)應(yīng)第%d條
????flag=1;?????//循環(huán)結(jié)束標(biāo)志
????
????//從小到大找最短路徑
????while(flag)?{
????????k=0;????????????????//每一輪循環(huán)中要選擇的最短路徑長(zhǎng)度對(duì)應(yīng)的頂點(diǎn)下標(biāo)
????????min=INFINITY;???????//每一輪循環(huán)中要選擇的最短路徑長(zhǎng)度
????????
????????for(j=0;?j????????????if(dist[j]!=0?&&?dist[j]????????????????k=j;
????????????????min=dist[j];
????????????}
????????}
????????printf(“第%d條最短路徑長(zhǎng)度為%d--(“?++n?min);?????//顯示最短路徑
????????for(j=0;?j????????????if(path[k][j]!=-1)?{?????????????????????????//打印從源點(diǎn)到最短路徑頂點(diǎn)經(jīng)過(guò)的頂點(diǎn)
????????????????printf(“%d“?path[k][j]);
????????????}
????????}
????????printf(“%d)\n“?k);
????????for(j=0;?j????????????if(j!=k?&&?G.arcs[k][j]!=INFINITY)?{
????????????????if(dist[k]+G.arcs[k][j]????????????????????dist[j]=dist[k]+G.arcs[k][j];
????????????????????for(m=0;?m

評(píng)論

共有 條評(píng)論