


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告學(xué)院自動(dòng)化學(xué)院學(xué)號(hào) 08016332徐璐峰日期 2017-12-18實(shí)驗(yàn)?zāi)康?)熟練掌握?qǐng)D的存儲(chǔ)方式;2)了解圖的特性,學(xué)習(xí)在實(shí)際問題背景下靈活運(yùn)用圖;3)掌握?qǐng)D的兩種最短路徑算法。實(shí)驗(yàn)容為簡(jiǎn)化問題,假設(shè)現(xiàn)有三條地鐵線:1號(hào)線、2號(hào)線和3號(hào)線,線路都是雙 向的。3條地鐵線的站點(diǎn)名分別如下,地鐵線交叉的換乘點(diǎn)用T1、T2等表示。請(qǐng)根據(jù)3條地鐵線的站點(diǎn)和換乘點(diǎn)構(gòu)造圖。編寫程序,任意輸入兩個(gè)站名名稱, 輸出乘坐地鐵最少需要經(jīng)過的車站數(shù)量(含輸入的起點(diǎn)和終點(diǎn),換乘站點(diǎn)只計(jì)算 一次)。地鐵 1 號(hào)線(直線)經(jīng)過車站: A1 A2 A3 T1A4 A5 A6 A7 A8 T2 A9 A10
2、 A11 A12 T3 A13 A14 A15 T4 A16地鐵 2 號(hào)線(直線)經(jīng)過車站: B1 T5 B2 B3 B4 B5 T2 B6 B7 B8 B9 B10 B11 T3 B12 B13 T6 B14 B15地鐵 3 號(hào)線(環(huán)線)經(jīng)過車站:C1 C2 C3 C4 C5 T1C6 C7 C8 C9 C10T5 C11 C12 C13 T6 C14C15 T4 C16 C17 C18實(shí)驗(yàn)要求1)用戶從鍵盤輸入兩個(gè)不同的站名,程序輸出最少需要經(jīng)過的車站數(shù)量(含輸 入的起點(diǎn)和終點(diǎn),換乘站點(diǎn)只計(jì)算一次);2)分別基于迪杰斯特拉算法和弗洛里德算法實(shí)現(xiàn)上述地鐵換乘問題;3)程序功能模塊的劃分要適當(dāng)
3、,多使用流程圖來描述算法結(jié)構(gòu)。1需求分析1) 輸入的形式和輸入值的圍。輸入的形式需要是地鐵站的名稱,女“ A1”、“ B7”“C14”。所輸入的的站點(diǎn)名不能是所要求的站點(diǎn)名之外的名稱。2)輸出的形式。所輸出的是基于弗洛里德算法與迪杰斯特拉算法進(jìn)行的最短路徑長度 求解的結(jié)果,以及最短路徑的車站路徑編號(hào),并在輸入錯(cuò)誤的時(shí)候允許重復(fù)輸入。3)程序所能達(dá)到的功能。用戶輸入車站起點(diǎn)與車站終點(diǎn)之后,通過迪杰斯特拉算法與 弗洛伊德算法,輸出從起點(diǎn)到終點(diǎn)的最短路徑長度,以及最短路徑所經(jīng)過的車站編號(hào)。4)測(cè)試數(shù)據(jù)。在程序運(yùn)行的開始,會(huì)提示用戶輸入起點(diǎn)與終點(diǎn),在用戶輸入起點(diǎn)與終點(diǎn)之后,程序會(huì)輸出根據(jù)弗洛伊德算法所
4、得到的最短路徑所經(jīng)過的車站數(shù)量,及經(jīng)過的車站路徑的編號(hào)。之后會(huì)再輸出根據(jù)迪杰斯特拉算法所得的最短路徑所經(jīng)過的車站數(shù)量,及所經(jīng)過的車站路徑的編號(hào)。如果所輸入起點(diǎn)或終點(diǎn)不存在,則會(huì)提示“起點(diǎn)/終點(diǎn)輸入錯(cuò)誤,請(qǐng)確認(rèn)后重新輸入?!敝髸?huì)繼續(xù)出現(xiàn)“請(qǐng)輸入起點(diǎn)/終點(diǎn):”之后,用戶就可以重新輸入原來輸入錯(cuò)誤的起點(diǎn)或終點(diǎn)車站名。在確認(rèn)起點(diǎn)與終點(diǎn)都輸入正確之后,程序就會(huì)輸出最短路徑與路徑編號(hào)。在一次程序執(zhí)行完畢后,支持用戶重復(fù)輸入。2概要設(shè)計(jì)在程序中之定義了一種抽象數(shù)據(jù)類型,struct Graph,它包含三個(gè)元素,intarrAcc5656;鄰接矩陣intverCount;點(diǎn)數(shù)intarcCount;邊數(shù)。并
5、且在程序開始的時(shí)候,還定義了長度為56的string型數(shù)組,用于存儲(chǔ)所有的地鐵站點(diǎn)。在程序運(yùn)行開始的時(shí)候,會(huì)先調(diào)用chan ge_train函數(shù),在change_train函數(shù)中,會(huì)先對(duì)g.arrAcc5656鄰接矩陣進(jìn)行初始化。之后調(diào)用floyd函數(shù),及printres函數(shù),輸出起點(diǎn)到終點(diǎn)的最短路徑長度及路徑車站編號(hào)。之后,會(huì)繼續(xù)調(diào) 用Dijkstra函數(shù)及searchPath函數(shù),輸出起點(diǎn)到終點(diǎn)的最短路徑長度及路徑車站編號(hào)。3詳細(xì)設(shè)計(jì)類視圖Graph結(jié)構(gòu)F字段* arcCount arrAcca verCount整個(gè)程序中所寫的函數(shù)有:floyd函數(shù),transform函數(shù),printre
6、s函數(shù),Dijkstra函數(shù),searchPath 函數(shù),change_train 函數(shù)。Floyd函數(shù)(圖g,鄰接矩陣dis叩,用來存儲(chǔ)路徑的矩陣path)/初始化path矩陣For(row 0 to 總的站點(diǎn)數(shù))For (col 0 to總的站點(diǎn)數(shù))pathrowcol row;For (k 0 to總的站點(diǎn)數(shù))For (i 0 to總的站點(diǎn)數(shù))For (j 0 to總的站點(diǎn)數(shù))/存在更近的路徑,更新If (disij >disik + diskj) disij disik + diskj;pathij pathkj;Transform函數(shù)(字符c)For (i 0 to 站點(diǎn)數(shù))I
7、f (存儲(chǔ)所有站點(diǎn)的數(shù)組si =c)返回i;Printres函數(shù)(圖Graph*p,經(jīng)floyd函數(shù)轉(zhuǎn)化后的鄰接矩陣dis5656,存儲(chǔ)路徑的矩陣path5656, 起點(diǎn) start,終點(diǎn) end)起點(diǎn)數(shù)碼 st = transform(起點(diǎn)字符start);終點(diǎn)數(shù)碼en = transform(終點(diǎn)字符end);將起點(diǎn)與終點(diǎn)轉(zhuǎn)化為存儲(chǔ)站點(diǎn)的數(shù)組中對(duì)應(yīng)的下標(biāo)輸出 <<”起點(diǎn)-> 終點(diǎn)"<<endl;輸岀 <<"根據(jù)弗洛伊德算法得,最少經(jīng)過的車站數(shù)量:"<<disste n + 1 <<e ndl;輸
8、出 <<"經(jīng)過的車站路徑編號(hào):";For (i 0 to 站點(diǎn)數(shù))For (j 0 to 站點(diǎn)數(shù))If (i = 起點(diǎn)數(shù)碼st并且j = 終點(diǎn)數(shù)碼en) /輸岀路徑stack< in t>pathrout; / 壓棧k- j;do k- pathik;kA pathrout 的棧當(dāng)(k不等于i);輸岀 <<存儲(chǔ)站點(diǎn)的數(shù)組spathrout的棧頂元素;彈岀pathrout的棧頂元素;length 棧 pathrout 的大小;For (t 0 to le ngth)輸岀 <<"->"<< 存
9、儲(chǔ)站點(diǎn)的數(shù)組spathrout的棧頂元素; 彈岀pathrout的棧頂元素;輸出 <<"->"<< 用戶輸入的終點(diǎn);跳岀循環(huán);Dijkstra函數(shù)(總的站點(diǎn)數(shù)n,起點(diǎn)v,當(dāng)前點(diǎn)到起點(diǎn)的最短路徑長度 distenee,記錄當(dāng)前節(jié)點(diǎn)的掐一個(gè)節(jié)點(diǎn)prev,記錄圖兩點(diǎn)間的路徑長度c5656)bool s56;/判斷是否已存入該點(diǎn)到S集合中For (i 0 to 總的站點(diǎn)數(shù)n)diste ncei cvi;si = 0;/初始都未用過該點(diǎn)If (起點(diǎn)到第i個(gè)點(diǎn)的距離為1000)第i個(gè)點(diǎn)的前一個(gè)點(diǎn)為0;否則第i個(gè)點(diǎn)的前一個(gè)點(diǎn)為起點(diǎn);/依次將未放入S集合的結(jié)
10、點(diǎn)中,取distence最小值的結(jié)點(diǎn),放入結(jié)合S中/ 一旦S包含了所有V中頂點(diǎn),distenee就記錄了從源點(diǎn)到所有其他頂點(diǎn)之間的最短路徑長度For (i 1ton)u v;/找岀當(dāng)前未使用的點(diǎn)j的distencej 最小值For (j Oton)if (sj等于0并且起點(diǎn)到第j個(gè)點(diǎn)的距離(temp)小于1000)u j;/ u保存當(dāng)前鄰接點(diǎn)中距離最小的點(diǎn)的tmp diste ncej;su 1;/ 表示u點(diǎn)已存入S集合中/ 更新 disteneeFor (j Oton)If (sj 為0并且點(diǎn)j到點(diǎn)u的距離cuj 小于1000)n ewdist diste nceu + cuj;If (n
11、ewdistvdiste ncej)distencej newdist;/更新起點(diǎn)到第j個(gè)點(diǎn)的最短路徑prevj u;更新第j個(gè)點(diǎn)的前一個(gè)點(diǎn)起點(diǎn) v, i ntu)searchPath函數(shù)(用于表示當(dāng)前點(diǎn)的前一個(gè)點(diǎn)的數(shù)組prev,in tque56;tot 1;quetot u;tot自增;tmp prevu;當(dāng)(tmp不等于v)quetot tmp;tot自增;tmp prevtmp;quetot v;For (i tot to 1)If (i不等于1)輸岀 << squei <<"->"否則輸岀 << squei <<
12、;e ndl;換行;change_train 函數(shù)()diste nce56;記錄起點(diǎn)到當(dāng)前點(diǎn)的最短路徑 prev56;記錄當(dāng)前點(diǎn)的前一個(gè)結(jié)點(diǎn)path5656;記錄路徑matrix5656; 用于備份的矩陣 arrAcc5656;鄰接矩陣g.verCou nt = 56;/ 定義總的站點(diǎn)的數(shù)目+1For (i 0 to 56)diste ncei max;/初始化鄰接矩陣For (i 0 tog.verCou nt(56) For( k 0 tog.verCou nt(56)If (i與k相同)g.arrAccik = 0;否則g.arrAccik = max;/輸入A環(huán)線各點(diǎn)連接情況,每個(gè)邊
13、權(quán)重都為1a20 = 0,1,2,49,3,4,5,6,7,50,8,9,10,11,51,12,13,14,52,15 ;For (i 0 to 19)g.arrAccaiai + 1 1;g.arrAccai + 1ai 1;個(gè)占I 八、;/23/輸入B線各點(diǎn)連接情況,每個(gè)權(quán)重都為1b19 = 16,53,17,18,19,20,50,21,22,23,24,25,26,51,27,28,54,29,30 ;/19For(i 0 to 18)g.arrAccbibi + 1 1;g.arrAccbi + 1bi 1;/輸入C線各點(diǎn)連接情況,每個(gè)權(quán)重都為1c23 = 31,32,33,34,
14、35,49,36,37,38,39,40,53,41,42,43,54,44,45,52,46,47,48,31 個(gè)點(diǎn)(因?yàn)槭黔h(huán)線,所以點(diǎn)數(shù)加一)For(i 0 to 22)g.arrAcccici + 1 1;g.arrAccci + 1ci 1;For (i 0 to 56) For (j 0 to 56)arrAccij g.arrAccij;/因?yàn)槭褂猛旮ヂ逡恋滤惴ㄖ?,g.arrAcc的返回值已經(jīng)變化了, /故在此將g.arrAcc中的值都賦值給matrix二維數(shù)組中,進(jìn)行備份For(i 0 to 56) For( j 0 to 56)matrixij g.arrAccij;For(
15、i 0 to 56) matrixii max;while (true) /利用這個(gè)死循環(huán)來實(shí)現(xiàn)用戶的重復(fù)輸入調(diào)用 floyd 函數(shù)(&g, arrAcc, path);定義 judgel = 0, judge2 = 0;輸出 <<"請(qǐng)輸入起點(diǎn)與終點(diǎn):"輸入 >> start >> end;當(dāng)(judgel = 0 或者 judge2 = 0) For (i 0 to 56) If (si = start) judge1 1;跳岀循環(huán);否則 judge1 0;If (judge1 = 0) 輸出 <<"起點(diǎn)輸
16、入錯(cuò)誤,請(qǐng)確認(rèn)后重新輸入!"<<換行;輸出 <<"請(qǐng)輸入起點(diǎn):"輸入 >> start;For (i 0 to 56) If (si = end) judge2 1;跳岀循環(huán);否則 judge2 0;If (judge2 = 0) 輸出 <<"終點(diǎn)輸入錯(cuò)誤,請(qǐng)確認(rèn)后重新輸入!"<<換行;輸出 <<"請(qǐng)輸入終點(diǎn):"輸入>> en d;n = tran sform(e nd);v = tra nsform(start);調(diào)用 prin tres(
17、&g, arrAcc, path, start, en d);輸出 <<換行;For (i 0 to 56) /使用完弗洛伊德算法之后,g.arrAcc已經(jīng)變了,所以需要鄰接矩陣進(jìn)行重置For (j 0 to 56)arrAccij matrixij;調(diào)用 Dijkstra(56, v, diste nee, prev, matrix);/最短路徑長度輸岀<v"根據(jù)迪杰斯特拉算法得,最少經(jīng)過的車站數(shù)量:"diste nce n + 1 << 換行;/路徑輸出 <<"經(jīng)過的車站路徑編號(hào):";調(diào)用 searc
18、hPath(prev, v, n);函數(shù)調(diào)用關(guān)系圖恕械數(shù)獺塑砌1X別浙笳編入館也砒泌礎(chǔ)足球*鳥寫甌弋揃紛制姓祀鄰鐵矩呼4調(diào)試分析1)調(diào)試過程中遇到的問題及其解決辦法,以及對(duì)整個(gè)設(shè)計(jì)和實(shí)現(xiàn)過程的回顧討論與分析;問題一:在進(jìn)行完floyd算法之后,鄰接矩陣arrAcc5656的值已經(jīng)變化了,此時(shí)再利用這個(gè)矩陣進(jìn)行接下來的Dijkstra算法,以及在用戶九子那個(gè)重復(fù)輸入,重復(fù)調(diào)用floyd與Dijkstra函數(shù),都是不能得出正確的結(jié)果的。在對(duì)這個(gè)點(diǎn)進(jìn)行調(diào)試的時(shí)候,就頗費(fèi)了些功夫,最后不得不先將arrAcc數(shù)組儲(chǔ)存起來,每 次在調(diào)用floyd之前,都新建一個(gè) matrix5656數(shù)組,將arrAcc5
19、656數(shù)組中 的值都復(fù)制進(jìn)來,之后讓floyd函數(shù)調(diào)用matrix數(shù)組,而不再調(diào)用arrAcc數(shù)組。 問題二:在借用網(wǎng)上的代碼的時(shí)候,網(wǎng)上的算法中,無論矩陣還是數(shù)組,下標(biāo) 都是從1開始的,但我自己所建的數(shù)組,為了節(jié)省存,都是從0開始的,所以在將從1開始的數(shù)組以及矩陣轉(zhuǎn)化為從0開始的數(shù)組與矩陣的時(shí)候,廢了很多麻煩。但無論是從 0開始,還是從1開始,只是表達(dá)數(shù)組與矩陣的思想不同, 效果都是一樣的。問題三:在設(shè)計(jì)實(shí)現(xiàn)用戶的重復(fù)輸入的過程中,一直找不到如果用戶輸入錯(cuò)誤之后,重新輸入時(shí),輸入正確之后,結(jié)束循環(huán)的條件,就一直陷入死循環(huán)中。最 后,就設(shè)置了 judgel和judge2兩個(gè)數(shù)來記錄是否能夠在已
20、有的站點(diǎn)中找到所 輸入的站點(diǎn)。在依據(jù)用戶輸入的站點(diǎn)對(duì)已有的站點(diǎn)數(shù)組進(jìn)行遍歷的時(shí)候,在數(shù) 組中的站點(diǎn)與輸入的站點(diǎn)不相同的時(shí)候,用0對(duì)judge1/judge2進(jìn)行重復(fù)賦值,一旦找到站點(diǎn)數(shù)組中的某個(gè)站點(diǎn)與用戶所輸入的站點(diǎn)相同的時(shí)候,用1對(duì)judge1/judge2進(jìn)行賦值,并且 break。判斷循環(huán)的條件就是judge1/judge2=0。問題四:在整個(gè)程序中涉及到很多對(duì)矩陣進(jìn)行的操作,包括很多對(duì)于矩陣中的 值的修改,在很多情況下,在代碼運(yùn)行錯(cuò)誤,以及出現(xiàn)意想不到的結(jié)果的時(shí)候, 通過輸出中間變量矩陣來判斷程序那里出現(xiàn)了問題是非常方便的。所以在整個(gè)程序編寫的過程中,也寫了很多的將程序運(yùn)行過程中生成的
21、矩陣輸出的代碼, 以便弄清楚代碼哪里出現(xiàn)了問題。2)算法的時(shí)空分析。空間復(fù)雜度:在整個(gè)程序運(yùn)行的過程中,定義的變量有 arrAcc5656,s56,queue5656,dista nce5656,prev5656,path5656,matrix5656,以及三個(gè),大小總共為 64的用于記錄站點(diǎn)編號(hào)的數(shù)組。所以程序的空間復(fù)雜度為0(6608).時(shí)間復(fù)雜度:程序中所有的循環(huán)都是以56為單位的。在整個(gè)程序運(yùn)行的過程中,共進(jìn)行了以56為單位的單重循環(huán)5次,雙重循環(huán)8次,三重循環(huán)1次。所以整個(gè)程序的時(shí)間復(fù)雜度為 0(200984).5測(cè)試結(jié)果當(dāng)輸入的車站名滿足要求時(shí)所設(shè)計(jì)的程序能夠?qū)崿F(xiàn)重復(fù)輸入,更大程度
22、的滿足用戶需求。 當(dāng)輸入的車站名不存在時(shí):起點(diǎn)終點(diǎn)均不存在:39 C :Wrndowssystem 3 2匚 md 電xe慵輸入起點(diǎn)與終點(diǎn):魅0 C20起點(diǎn)輸入錯(cuò)謀,請(qǐng)貓認(rèn)后垂新喻入! 請(qǐng)輸入起點(diǎn):M契點(diǎn)輸入錯(cuò)課,請(qǐng)確認(rèn)后重新駙入!請(qǐng)輸入終點(diǎn);B11從 ASSfjB11棍搖月洛伊隱賞注得.最少經(jīng)垃的手站數(shù)量:$經(jīng)過的車站路徑編號(hào):A8->T2->B6->B7->B8->E9->E10->B11 根據(jù)迪杰斯特拉算塔得*最少經(jīng)過的牟詁數(shù)量:e經(jīng)過的車站路色編號(hào):A8- >T2->B6- >B7->B8- >BS"&g
23、t;B10->B11請(qǐng)輸入起點(diǎn)與終點(diǎn):起點(diǎn)存在,終點(diǎn)不存在:C:Wi nd o wss /stem 32cm d exe|_=_請(qǐng)諭入起點(diǎn)2終點(diǎn)匕B2 B20紋點(diǎn)輸入曙惺,請(qǐng)蹣認(rèn)后蛋斷輸入!詣?shì)斎虢K點(diǎn)! B9從口 2到的棍據(jù)弗洛伊德算搓得*量少經(jīng)過的牟詁墩量:2經(jīng)過的車站路管塢號(hào):fi2->fl3->T1->A4->A5->A6->ft7->AS->T2->BS->B7->E8->B9根據(jù)辿禾斯特拉篦法得”最少經(jīng)過的車站數(shù)量:心經(jīng)過的年詁站徑'編弓:«2-?3->11->«4-
24、>«5->06->7->8->12->66->87->6>->09請(qǐng)輸入起點(diǎn)與線點(diǎn),姑B6?魏點(diǎn)域入錯(cuò)it 溥確認(rèn)后重新輸入!請(qǐng)輸入終點(diǎn):C5Afi4 至 lJC5根搐界洛伊德筆擺得場(chǎng)步經(jīng)討的車詁數(shù)旱:3 銓過的車站略鋰蝙號(hào):61*->T1 ->C5桐據(jù)迪走斯特拉算法得,最少經(jīng)過的牟站歎量:3經(jīng)過的李站路住編弓:AH->T1->C5請(qǐng)輸入起點(diǎn)與皺點(diǎn):終點(diǎn)存在,起點(diǎn)不存在:QB C:V/ind ov-. 5話戶 to in 3 2cm d. qxq|請(qǐng)輸入起點(diǎn)與終點(diǎn):fi2G BG 匿點(diǎn)輸入錯(cuò)決,請(qǐng)確認(rèn)
25、后重新轍入! 請(qǐng)輸入起點(diǎn):C11戍口1到B&根據(jù)弗洛伊慮算搓得;量少經(jīng)過的車詁數(shù)量:8隆過的車站路徑'編號(hào):Cl 1 ->T5->B2->B3->B4->B5->T2->Be 赧據(jù)迴杰斯恃拉算袪得'最少經(jīng)過的車站數(shù)量:8 陲過的車站路徑編號(hào);C11 ->TS->62->B3->64->65->T2->BG 馬輸入jS點(diǎn)弓終點(diǎn):當(dāng)用戶重復(fù)輸入錯(cuò)誤的時(shí)候:Ki C: Wi r dow ssyste m 3 2c md. exe請(qǐng)輸入起點(diǎn)與繆點(diǎn);A23 B5 起占輸入錯(cuò)諜,請(qǐng)確認(rèn)辰至新輸入!
26、請(qǐng)輸入起點(diǎn) A23甩點(diǎn)輸入錯(cuò)鳳請(qǐng)確認(rèn)后重新輸入! 請(qǐng)編頭起點(diǎn):A2*憧點(diǎn)輸人錯(cuò)詵請(qǐng)確認(rèn)后車新輸人!i青輸入起點(diǎn):BG?起點(diǎn)輸入錯(cuò)謀,謂確認(rèn)后重新輸入! 請(qǐng)鱸J人起點(diǎn):02從呢利B5限據(jù)弗洛伊徳篦法衞 量少經(jīng)過的車站數(shù)量:10經(jīng)過的蘭詁路徑編號(hào):A2- >A3->T1 - >A4->A5- >A6->AT->A8->T2->B5 根據(jù)迪杰期特扛算法得”最少經(jīng)過的牟站數(shù)量:伯經(jīng)過的車站路徑編號(hào):A2->A3->T1->A4->A5->A6->A7->A0->T2->B5 馬輸入起點(diǎn)與終民在設(shè)
27、計(jì)程序的過程中, 考慮了用戶輸入錯(cuò)誤的情況。 在用戶輸入錯(cuò)誤的情況下, 提示用 戶是起點(diǎn),還是終點(diǎn)輸入錯(cuò)誤, 之后提示用戶確認(rèn)后重新輸入。并且支持程序的重復(fù)運(yùn)行,直到用戶不再需要查詢路徑的時(shí)候,退出程序。6實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)主要就是基于弗洛里德與迪杰斯特拉算法進(jìn)行最短路徑的求解,兩種算法雖然原理不同,但總的來說,都是對(duì)矩陣進(jìn)行操作,從而得到自己想要的結(jié)果。網(wǎng)上也有很多有關(guān)弗洛伊德算法與迪杰斯特拉算法的代碼,但將網(wǎng)上的代碼改編為自己想要的基于地鐵換乘的代碼還是有很大難度的。首先需要考慮的就是在定義儲(chǔ)存所有站點(diǎn)的數(shù)組的時(shí)候,地鐵線路的交叉點(diǎn)應(yīng)處在數(shù)組的什么位置,處于所有站點(diǎn)的末尾與處在站點(diǎn)的中間會(huì)是兩種不同的處理方法。并且網(wǎng)上的很多代碼都是數(shù)字作為整個(gè)圖的節(jié)點(diǎn),但地鐵換乘的節(jié)點(diǎn)是站點(diǎn)名字,是string類型的量。在將代碼從基于數(shù)字到基于string也是破費(fèi)了寫功夫。創(chuàng)新之處:1.在初始化鄰接矩陣的時(shí)候,依據(jù)每個(gè)站點(diǎn)在總的存儲(chǔ)站點(diǎn)的數(shù)組里的順序,定 義了分別表示三條地鐵線路的int型數(shù)組。用int型數(shù)組中的值來表示每個(gè)站點(diǎn)的下標(biāo),這樣在初始化鄰接矩陣
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東省中考模擬歷史試題(原卷版+解析版)
- 當(dāng)前世界經(jīng)濟(jì)形勢(shì)1468792390
- 九年紀(jì)上語文知識(shí)點(diǎn)梳理
- 2025年黨員領(lǐng)導(dǎo)干部廉政法規(guī)知識(shí)考試題庫及答案(共130題)
- 體育體測(cè)檢討書
- FAMILYDAY員工家庭日活動(dòng)
- 醫(yī)藥航空運(yùn)輸服務(wù)協(xié)議
- 氫能項(xiàng)目可行性研究報(bào)告
- 項(xiàng)目監(jiān)控工程
- 聰明屋智能家居系統(tǒng)
- 2025年合肥共達(dá)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫附答案
- 2025美國急性冠脈綜合征(ACS)患者管理指南解讀課件
- 足球迷互動(dòng)活動(dòng)策劃與執(zhí)行策略
- 2025年寧夏工商職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫帶答案
- ESC+2024+心房顫動(dòng)(房顫)管理指南解讀
- 2019地質(zhì)災(zāi)害防治工程工程量清單計(jì)價(jià)規(guī)范
- 2022-2024年江蘇中考英語試題匯編:任務(wù)型閱讀填空和閱讀回答問題(教師)
- 游戲跨文化傳播-洞察分析
- 河北石家莊市市屬國有企業(yè)招聘筆試沖刺題2025
- 2025-2030年中國鐵合金冶煉行業(yè)競(jìng)爭(zhēng)格局展望及投資策略分析報(bào)告
-
評(píng)論
0/150
提交評(píng)論