[輸入]
圖的頂點(diǎn)個(gè)數(shù)N,圖中頂點(diǎn)之間的關(guān)系及起點(diǎn)A和終點(diǎn)B
[輸出]
若A到B無(wú)路徑,則輸出“There is no path” 否則輸出A到B路徑上個(gè)頂點(diǎn)
[存儲(chǔ)結(jié)構(gòu)]
圖采用鄰接矩陣的方式存儲(chǔ)。
[算法的基本思想]
采用廣度優(yōu)先搜索的方法,從頂點(diǎn)A開(kāi)始,依次訪問(wèn)與A鄰接的頂點(diǎn)VA1,VA2,...,VAK, 訪問(wèn)遍之后,若沒(méi)有訪問(wèn)B,則繼續(xù)訪問(wèn)與VA1鄰接的頂點(diǎn)VA11,VA12,...,VA1M,再訪問(wèn)與VA2鄰接頂點(diǎn)...,如此下去,直至找到B,最先到達(dá)B點(diǎn)的路徑,一定是邊數(shù)最少的路徑。實(shí)現(xiàn)時(shí)采用隊(duì)列記錄被訪問(wèn)過(guò)的頂點(diǎn)。每次訪問(wèn)與隊(duì)頭頂點(diǎn)相鄰接的頂點(diǎn),然后將隊(duì)頭頂點(diǎn)從隊(duì)列中刪去。若隊(duì)空,則說(shuō)明到不存在通路。在訪問(wèn)頂點(diǎn)過(guò)程中,每次把當(dāng)前頂點(diǎn)的序號(hào)作為與其鄰接的未訪問(wèn)的頂點(diǎn)的前驅(qū)頂點(diǎn)記錄下來(lái),以便輸出時(shí)回溯。
#include<stdio.h>
int number //隊(duì)列類(lèi)型
typedef struct{
int q[20]
metricmatlab
ch ¬ ng 4
Ma trË n - c¸ c phÐ p to¸ n vÒ ma trË n.
4.1 Kh¸ i niÖ m:
- Trong MATLAB d÷ liÖ u ® Ó ® a vµ o xö lý d íi d¹ ng ma trË n.
- Ma trË n A cã n hµ ng, m cét ® î c gä i lµ ma trË n cì n m. § î c ký hiÖ u An m
- PhÇ n tö aij cñ a ma trË n An m lµ phÇ n tö n» m ë hµ ng thø i, cét j .
- Ma trË n ® ¬ n ( sè ® ¬ n lÎ ) lµ ma trË n 1 hµ ng 1 cét.
- Ma trË n hµ ng ( 1 m ) sè liÖ u ® î c bè trÝ trª n mét hµ ng.
a11 a12 a13 ... a1m
- Ma trË n cét ( n 1) sè liÖ u ® î c bè trÝ trª n 1 cét.