浙江大學在慕課網上開設的《資料結構》課,陳越老師、何欽銘老師主講,課後作業的一道題。
這個題目是求圖中「每一對頂點之間的最短路徑」,應用到的演算法是floyd演算法。
#define _crt_secure_no_warnings
#include #include #include #define maxverternum 101 //最大定點數設為100
#define infinity 65535 //無窮設為雙位元組無符號整數的最大值65535
typedef int weighttype; //邊的權值設為int型別
typedef char datatype; //頂點儲存的資料型別設定為字元型別
typedef int vertex; //用頂點下標表示頂點,為整型
struct gnode
;//描述邊的型別
struct enode
;//作用:初始化乙個有vertexnum個頂點但沒有邊的圖
struct gnode* creategraph(int vertexnum)
} for (v = 0; v < graph->nv; v++)
}} return graph;
}//作用:在圖中插入邊
void insertedge(struct gnode* graph, struct enode* e)
//作用:構建乙個圖,供主函式呼叫
struct gnode* bulidgraph()
} ////如果頂點有資料的話,讀入資料
//for (v = 0;v < graph->nv;v++)
// return graph;
}//作用:floyd演算法
//引數:struct gnode* graph 圖
// weighttype d[maxverternum] 最短路徑長度
// vertex path[maxverternum] 最短路徑
bool floyd(struct gnode* graph,weighttype d[maxverternum],vertex path[maxverternum])
} for (k = 0;k < graph->nv;k++)
path[i][j] = k;}}
} }return true;
}int main()
if (d[i][j] > temp)
}if (temp < result)
temp = 0;
} }printf("%d %d\n",animal + 1,result);
// system("pause");
return 0;
}
哈利 波特的考試
魔咒的長度就相當於圖中邊的權值,而且告訴我們是無向圖,因為正反都可以變且魔咒長度相同。相當於求解相對於每個節點來說能到達的最遠距離的最小值是多少。是乙個多源最短路問題,應用弗羅伊德演算法解決。include include using namespace std define inf 1000010...
7 8 哈利 波特的考試
哈利 波特要考試了,他需要你的幫助。這門課學的是用魔咒將一種動物變成另一種動物的本事。例如將貓變成老鼠的魔咒是haha,將老鼠變成魚的魔咒是hehe等等。反方向變化的魔咒就是簡單地將原來的魔咒倒過來念,例如ahah可以將老鼠變成貓。另外,如果想把貓變成魚,可以通過念乙個直接魔咒lalala,也可以將...
7 8 哈利 波特的考試
哈利 波特要考試了,他需要你的幫助。這門課學的是用魔咒將一種動物變成另一種動物的本事。例如將貓變成老鼠的魔咒是haha,將老鼠變成魚的魔咒是hehe等等。反方向變化的魔咒就是簡單地將原來的魔咒倒過來念,例如ahah可以將老鼠變成貓。另外,如果想把貓變成魚,可以通過念乙個直接魔咒lalala,也可以將...