#include#includeusingnamespacestd;constintMaxum=100000;classGraph{private:int*Adj;//保">
數(shù)據(jù)結(jié)構(gòu)-源程序

數(shù)據(jù)結(jié)構(gòu)-源程序

ID:22287523

大?。?49.00 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2018-10-28

數(shù)據(jù)結(jié)構(gòu)-源程序_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)-源程序_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)-源程序_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)-源程序_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)-源程序_第5頁(yè)
資源描述:

《數(shù)據(jù)結(jié)構(gòu)-源程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、#include#include#includeusingnamespacestd;constintMaxum=100000;classGraph{private:int*Adj;//保存鄰接矩陣的一維數(shù)組j和k之間權(quán)值存儲(chǔ)在Adj[j*Num+k]中intNum;//當(dāng)前頂點(diǎn)數(shù)public:Graph();//構(gòu)選函數(shù)"Graph();//析溝函數(shù)voidDijkstra(intstart);//單元最短路徑算法};Graph::Graph()//構(gòu)造閑數(shù){ifstreaminput("input,txt",

2、ios::in);if(input==NULL)cout〈<〃openerror!〃;if(input!=NULL){input?Num;Adj=ncwint[Num*Num];if(Adj==NULL)exit(0);for(inti=0;i

3、路徑算法{int*dist=newint[Num];//記彔最短權(quán)值int*prev=newint[Num];//記錄路徑int*s=newint[Num];//s為己經(jīng)確定好的頂點(diǎn)域inti,j,k,m;//j記錄dist的下標(biāo)m=start;for(i=0;i〈Num;i++)//初始化dist[i]=Adj[m*Nura+i];prev[i]=m;//記錄源點(diǎn)到頂點(diǎn)的最短路徑上,本頂點(diǎn)的前一頂點(diǎn)s[i]=O;//頂點(diǎn)i不在s域中}prev[ni]=-1;//ni是源點(diǎn)前一頂點(diǎn)不存在s[m]=l;//源點(diǎn)在s域中for(i=0;i<Num-l;i++)//差N

4、um-1個(gè)頂點(diǎn)需處理{intmin;//最小權(quán)for(k=0;k<Num;k++)if(!s[k])break;//找到仍在頂點(diǎn)-S域中的第一個(gè)頂點(diǎn)min=dist[k];j=k;for(k=j+l;k<Nura;k++)//找最小權(quán)值的邊if(!s[k]&&dist[k]〈min){min=dist[k];j=k;}s[j]=l;//放進(jìn)s域屮for(k=0;k<Num;k++)//更新最短路徑值if(!s[k]&&dist[j]+Adj[j*Num+k]<dist[k]){dist[k]=dist[j]+Adj[j*Num+k];//記錄最短路徑prev[k]

5、=j;//記錄路徑即本頂點(diǎn)k的前驅(qū)頂點(diǎn)j}}ofstreamoutput("output,txt",ios::out);if(output==NULL)exit(0);for(k=0;k<Num;k++)//輸出打印if(k!=m){if(dist[k]>=MaxNum){output<〈〃源點(diǎn)〃〈<start〈〈〃到頂點(diǎn)〃<〈k〈〈〃不存在相通的路徑〃〈<endl〈<endl;}else{output〈〈〃源點(diǎn)〃<〈start<〈〃到頂點(diǎn)〃<<k〈〈〃的最小花費(fèi)為:"〈<dist[k]〈<endl;//輸出最小權(quán)值j=k;stack〈int〉Q;output<〈

6、〃路徑為:〃;while(j!=m){Q.push(j);j=prev[j];}//路徑存入棧中Q.push(j);while(Q.size()!=1){output?Q.top()〈<"~〉’’;Q.pop();}//輸出路徑output?Q.top()?endl?endl;Q.pop();//最后一個(gè)元素出棧}}}intmain(){GraphG;cout〈〈〃請(qǐng)輸入起點(diǎn):〃〈

7、ineN7^defineI999graph[N][N]二{{I,4,5,8,T,T,T},{I,I,I,6,6,I,I},{I,I,I,5,I,7,I},{I,I,I,I,8,9,9},{I,I,I,I,I,T,5},{I,I,I,I,I,I,4},{I,I,I,1,I,1,1}/*頂點(diǎn)數(shù)目*//*表示無(wú)窮大*//*圖的鄰接矩陣*//*存放拓?fù)湫蛄?//*拓?fù)渑判蚨陻?shù)*/A主函數(shù)*//*最長(zhǎng)最短距離*//*記錄路徑數(shù)據(jù)*/intList[N];intTopologicalOrder0;voidmain(){inti,j,k,1;intee[N],el[N];int

8、path_

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。