Dijkstra重點看注意

2021-05-02 20:21:04 字數 1073 閱讀 5434

/*要注意的地方有兩個:

1.如果是動態確定的數作陣列大小,則需要動態申請記憶體!!!

2.執行程式的時候嚴格按照輸入的格式進行輸入!!!*/

#include

#include

#define maxvertexnum 100       /*最大頂點數設為100*/

#define infinity 10000        /*設定乙個大於所有邊權值的乙個邊界值*/

typedef int vertextype;       /*頂點型別設為字元型*/

typedef int edgetype;        /*邊的權值設為整型*/

typedef structmgragh;           /*mgragh是以鄰接矩陣儲存的圖型別*/

typedef int pathmatrix;

typedef int shortpathtable;

enum bool ;

void createmgraph(mgragh *g)

for (i = 0;i < g->n;i ++)        /*初始化鄰接矩陣*/

}printf("請輸入每條邊對應的兩個頂點的序號(輸入格式為:i,j):/n");

printf("請輸入每條邊對應的權值(輸入格式為:i):/n");

for (k = 0;k < g->e;k ++)        /*輸入e條邊,建立鄰接矩陣*/

}/*createmgraph*/

void shorttestpath(mgragh *g,int v0,pathmatrix *p,shortpathtable *d)

}final[v] = true;

for (w = 0;w < g->n; ++ w)}}

/*輸出各最短路徑的長度及路徑上的結點*/

for (i = 1;i < g->n;i ++)

else

printf("←0/n");}}

free(final);

}int main()

let與var的區別(重點看例子)

var存在變數提公升,而let不存在變數提公升,所以用let定義的變數一定要在宣告後再使用,否則會報錯。var定義的變數存在變數提公升,變數會把宣告提公升到整個作用域的最前面 例子1 console.log a undefined var c 10 等價於 var c console.log a u...

無法進入bios 劃重點,請注意全是BIOS知識點

bios是什麼?bios是英文 basic input output system 的縮略詞,直譯過來是 基本輸入輸出系統 通俗一點講,它就是乙個程式,裡面儲存著計算機最重要的基本輸入輸出的程式 開機後自檢程式和系統自啟動程式。可想而知,如果bios被攻擊,電腦也會隨之癱瘓。如果說 擒賊先擒王 那麼...

String中重點需要注意的函式用法

最常用的就是這三個,尤其是erase,老是忘了怎麼用 1 常不小心誤用的函式 erase 不要直接使用erase i i為下標 根本沒這個用法,會導致非法訪問記憶體。只有以下三種用法 1 erase pos,n 刪除從pos開始的n個字元,比如erase 0,1 就是刪除第乙個字元 2 erase ...