下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
jl.〃鄰接矩陣存儲(chǔ)圖
112.#include<iostream>
3.usingnamespacestd;
4.
5.〃定義最大頂點(diǎn)數(shù)
6.#defineMVNum128
7.//定義狀態(tài)類型
8.#defineStatusint
9.〃函數(shù)結(jié)果狀態(tài)代碼
10.#defineOK1
11.#defineERROR0
12.#defineINFEASIBLE0
13.#defineEXISTED2
14.
15.//定義圖的結(jié)構(gòu)體類型
16.typedefstruct{
17.intvexs[MVNum+1];//頂點(diǎn)集因?yàn)轫旤c(diǎn)存儲(chǔ)序號(hào)范圍為1?MVNum
18.intarcs[MVNum+1][MVNum+1];〃鄰接矩陣
〃圖當(dāng)前的頂點(diǎn)數(shù)和邊數(shù)
19.intvexnum?arcnum;
20.JAMGraph;
21.
22.〃采用鄰接矩陣表示法,創(chuàng)建無(wú)向圖graph
|;23.StatuscreateUDN(AMGraph&graph,intvexnum,intarcnum){
24.graph.vexnum=vexnum;〃初始化圖的總頂點(diǎn)數(shù)
25.graph.arcnum=arcnum;〃初始化圖的總邊數(shù)
26.if(graph.vexnum>=MVNum)returnERROR;//頂點(diǎn)、數(shù)超過(guò)最大允許范圍,返回錯(cuò)誤代碼。(注意數(shù)組下標(biāo)從。開(kāi)始)
27.for(inti=0;i<=graph.vexnum;i++){〃依次輸入頂點(diǎn)信息
28.graph.vexs[i]=i;
29.)
30.for(inti=0;i<=graph.vexnum;i++){〃初始化所有邊的權(quán)值為0,表示邊不存在
31.for(intj=0;j<=graph.vexnum;j++){
32.graph.arcs[i][j]=0;
33.}
34.)
35.intvex_one,vex_two;〃一條邊依附的兩個(gè)頂點(diǎn)vex_one和vex_two
36.for(inti=0;i<graph.arcnum;i++){〃循環(huán)輸入arcnum條邊的信息
37.cin>>vex_one>>vex_two;
38.graph.arcs[vex_one][vex_two]=1;〃表權(quán)值為1,表示邊存在
39.graph.arcs[vex_two][vex_one]=1;
40.)
41.returnOK;//創(chuàng)建成功,返回成功代碼。
42.}
43.
44.〃定義打印無(wú)向圖函數(shù)
45.voidprintUDN(AMGraphgraph){
46.for(inti=0;i<=graph.vexnum;i++){〃在第一行打印頂點(diǎn)信息
47.cout<<graph.vexs[i]<<"
48.}
49.cout<<endl;
50.for(inti=1;i<=graph.vexnum;i++){〃輸出邊的信息(每行第一個(gè)數(shù)字為頂點(diǎn))(注意0號(hào)頂點(diǎn)不輸出)
51.cout<<graph.vexs[i]<<"〃輸出該行對(duì)應(yīng)的頂點(diǎn)
52.for(intj=1;j<=graph.vexnum;j++){〃輸出該行頂點(diǎn)對(duì)應(yīng)所有邊信息
53.cout<<graph.arcs[i][j]<<"<*;
54.}
55.cout<<endl;
56.}
57.〃輸出結(jié)束
58.}
59.
60.intLocateVex(AMGraphG,intv){〃判斷頂點(diǎn)v是否存在圖G中
61.for(inti=0;i<=G.vexnum;i++){
62.if(G.vexs[i]==v)
63.returni;
64.}
65.return-1;
66.}
67.
68.〃增加一個(gè)新頂點(diǎn)v,InsertVexCG,v);
69.〃在以鄰接矩陣形式存儲(chǔ)的無(wú)向圖G上插入頂點(diǎn)v
70.StatusInsertVex(AMGraph&G,intv){
71.if(LocateVex(G,v)>=0)returnEXISTED;〃判斷該頂點(diǎn)是否已存在
72.if((G.vexnum+1)>MVNum)returnINFEASIBLE;〃判斷頂點(diǎn)數(shù)量是否已超過(guò)數(shù)組最大存儲(chǔ)容量
73.G.vexnum++;
74.G.vexs[G.vexnum]=v;//將頂點(diǎn)信息插入圖的頂點(diǎn)數(shù)組中同時(shí)頂點(diǎn)數(shù)量自增加一
75.for(intk=0;k<=G.vexnum;k++){
76.G.arcs[G.vexnum][k]=G.arcs[k][G.vexnum]=0;〃鄰接矩陣中相應(yīng)邊的信息置為0
77.}
78.returnOK;〃添加成功,返回成功代碼
79.}
80.
81.〃刪除頂點(diǎn)v及其相關(guān)的邊,DeleteVex(G,v);
82.〃在以鄰接矩陣形式存儲(chǔ)的無(wú)向圖G上刪除頂點(diǎn)v以及和頂點(diǎn)相關(guān)的邊
83.StatusDeleteVex(AMGraph&G>intv){
84.intn=G.vexnum,m;〃m用于記錄頂點(diǎn)v的數(shù)組存儲(chǔ)下標(biāo)位置
85.if((m=LocateVexCG,v))<0)〃判斷刪除操作是否合法,即v是否在G中
86.returnERROR;
87.inttemp=G.vexs[m];〃將待刪除頂點(diǎn)交換到最后一個(gè)頂點(diǎn)
88.G.vexs[m]=G.vexs[n];
89.G.vexs[n]=temp;
90.for(inti=0;i<=n;i++){〃將邊的關(guān)系也隨之變換
91.temp=G.arcs[m][i];
92.G.arcs[m][i]=G.arcs[n][i];
93.G.arcs[n][i]=temp;
94.temp=G.arcs[i][m];
95.G.arcs[i][m]=G.arcs[i][n];
96.G.arcs[i][n]=temp;
97.}
98.G.vexnum--;〃頂點(diǎn)總數(shù)減一
99.returnOK;〃添加成功,返回成功代碼
100.)
101.
102.〃增加一條邊<v,w>,InsertArc(G,v,w);
103.〃在以鄰接矩陣形式存儲(chǔ)的無(wú)向圖G上增加一條依附于頂點(diǎn)v和頂點(diǎn)m的邊
104.StatusInsertArc(AMGraph&G,intv>intw){
105.inti,j;
106.if((i=LocateVex(G,v))<0)returnERROR;〃判斷插入位置是否合法
107.if((j=LocateVex(G,w))<0)returnERROR;
108.if(i==j)returnERROR;
109.if(G.arcs[i][j])returnEXISTED;〃依附于頂點(diǎn)v和w的邊已經(jīng)存在
110.G.arcs[i][j]=G.arcs[j][i]=1;
111.G.arcnum++;〃圖的邊數(shù)量加一
112.returnOK;〃添加成功,返I3成功代碼
113.}
114.
115.〃刪除一條邊w>,DeleteArcCG,v,w)o
116.〃在以鄰接矩陣形式存儲(chǔ)的無(wú)向圖G上刪除一條依附于頂點(diǎn)v和頂點(diǎn)m的邊
117.StatusDeleteArc(AMGraph&G,intv,intw){
118.inti,j;
119.if((i=LocateVex(G,v))<0)returnERROR;〃判斷插入位置是否合法
120.if((j=LocateVex(G,w))<0)returnERROR;
121.if(i==j)returnERROR;
122.if(G.arcs[i][j]==0)returnINFEASIBLE;〃待刪除的邊不存在,返回非法錯(cuò)誤
123.G.arcs[i][j]=G.arcs[j][i]=0;
124.G.arcnum++;〃圖的邊數(shù)量加一
125.returnOK;〃添加成功,返回成功代碼
126.}
127.
128.
129.intmain(){
130.intn,m;〃n個(gè)頂點(diǎn)和m條邊
131.cout<<”請(qǐng)輸入頂點(diǎn)的數(shù)量n和邊的數(shù)量m(空格分隔,下同):\b";
132.cin>>n>>叫〃輸入n和m的值
133.AMGraphG;
134.cout””請(qǐng)依次輸入m條邊所依附的兩端頂點(diǎn):\n";
135.createUDN(G,n,m);
136.〃打印圖的信息
137.printUDN(G);
138.intv,w;
139.//開(kāi)始添加新頂點(diǎn)測(cè)試
140.couty”請(qǐng)輸入待添加新頂點(diǎn)編號(hào):\b"<<endl;
141.cin>>v;
142.InsertVex(G,v);〃插入頂點(diǎn)v
143.〃打印圖的信息
144.printUDN(G);
,145?//開(kāi)始刪除頂點(diǎn)測(cè)試
146.cout<<"請(qǐng)輸入待刪除新頂點(diǎn)編號(hào):\b"<<endl;
147.cin>>v:
148.DeleteVex(G^v);
149.〃打印圖的信息
150.printUDN(G);
151?〃開(kāi)始添加邊的信息
152.couty”請(qǐng)輸入待添加新邊兩端頂點(diǎn)的編號(hào):\b"<<endl;
153.cin>>v>>w;
154.InsertArc(G,v,w);
155.〃打印圖的信息
156.printUDN(G);
157.〃開(kāi)始刪除邊的信息
158.cout請(qǐng)輸入待刪除新邊兩
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微信采購(gòu)合同范本
- 菜場(chǎng)原料采購(gòu)合同范本
- 房子出售轉(zhuǎn)租合同范本
- 外墻噴漆合同范本私人
- 未來(lái)五年魚(yú)肝油分離品企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年中子發(fā)生器企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年金鯧魚(yú)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年GSM手機(jī)企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略分析研究報(bào)告
- 浙江國(guó)企招聘2025臺(tái)州臨海工投紫光環(huán)保科技有限公司招聘18人筆試參考題庫(kù)附帶答案詳解(3卷合一版)
- 2025招聘蒙發(fā)能源控股集團(tuán)期待您加入筆試參考題庫(kù)附帶答案詳解(3卷)
- 項(xiàng)目經(jīng)理年底匯報(bào)
- 新生兒戒斷綜合征評(píng)分標(biāo)準(zhǔn)
- 【公開(kāi)課】絕對(duì)值人教版(2024)數(shù)學(xué)七年級(jí)上冊(cè)+
- T/CI 312-2024風(fēng)力發(fā)電機(jī)組塔架主體用高強(qiáng)鋼焊接性評(píng)價(jià)方法
- 藥品檢驗(yàn)質(zhì)量風(fēng)險(xiǎn)管理
- 中國(guó)古橋欣賞課件
- 2025年硅酸乙酯-32#項(xiàng)目可行性研究報(bào)告
- 超星爾雅學(xué)習(xí)通《心理、行為與文化(北京大學(xué))》2025章節(jié)測(cè)試附答案
- 《煤礦安全生產(chǎn)責(zé)任制》培訓(xùn)課件2025
- 《臨床中藥學(xué)實(shí)訓(xùn)》課程教學(xué)大綱
- 慢性牙周炎講解
評(píng)論
0/150
提交評(píng)論