版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 題目:(例如)基于矩陣變換算法的圖同構(gòu)識別</p><p><b> 實(shí)驗(yàn)環(huán)境:</b></p><p> 1、硬件環(huán)境:個(gè)人機(jī),CPU主頻:2.3GHZ 內(nèi)存:4GB</p><p> 2、軟件環(huán)境:操作系統(tǒng):windows</p><p><b> 編程
2、語言:C++</b></p><p><b> 實(shí)驗(yàn)任務(wù)解決方案:</b></p><p> 實(shí)驗(yàn)思路:設(shè)兩個(gè)無向圖G=(V,E),G’=(V’,E’),G,G’同構(gòu)當(dāng)且僅當(dāng)兩圖的鄰接矩陣、行間同或矩陣、行間異或矩陣具有相同的行行置換。</p><p><b> 矩陣算法步驟</b></p>
3、<p> 根據(jù)定義,求出同型矩陣AAG、AAG’.</p><p> 計(jì)算出行間同或矩陣RAG、RAG’,行間異或矩陣RXG、RXG’.</p><p> 以圖G=(V,E)的行間異或矩陣為參照,對RXG的每一行,從RXG’搜索所有行,找到一個(gè)匹配。若不存在相應(yīng)匹配,則兩圖不同構(gòu);若匹配,轉(zhuǎn)步驟(4).</p><p> 判斷鄰接矩陣AG、AG’
4、,行間同或矩陣中是否存在同樣的匹配,若匹配存在,調(diào)整鄰接矩陣AG’、行間異或矩陣RXG’、行間同或矩陣RAG’對應(yīng)的行和列;若不匹配,則不同構(gòu).</p><p> 2、基于矩陣變換算法的流程圖。</p><p> 3、基于矩陣變換算法實(shí)現(xiàn)的關(guān)鍵代碼。</p><p> //*********************************冒泡排序</p&
5、gt;<p> void wensen_mp(int mp[],int n)</p><p><b> {</b></p><p><b> int t;</b></p><p> for(int i=0;i<n-1;i++)</p><p><b> {&l
6、t;/b></p><p> for(int j=0;j<n-1-i;j++)</p><p><b> {</b></p><p> if(mp[j]>mp[j+1])</p><p><b> {</b></p><p><b> t
7、=mp[j];</b></p><p> mp[j]=mp[j+1];</p><p> mp[j+1]=t;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
8、/p><p><b> }</b></p><p> /////////////////////////核心代碼</p><p><b> //異或矩陣行轉(zhuǎn)換</b></p><p> void wensen_hx(int **p1,int **p13,int **p14,int **p2,in
9、t **p23,int **p24,int n)</p><p><b> {</b></p><p> int *p77=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p13</p><p> int *p88=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p23</p><p> int *p
10、33=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p1</p><p> int *p44=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p14</p><p> int *p55=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p2</p><p> int *p66=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p24<
11、;/p><p> int *p99=new int[n];//用于行行替換的臨時(shí)數(shù)組</p><p><b> int t;</b></p><p> int tt;//進(jìn)行跳轉(zhuǎn)判斷</p><p> int ttt=0;//進(jìn)行跳轉(zhuǎn)判斷</p><p><b> //行行替換&l
12、t;/b></p><p> for( int i=0;i<n;i++)</p><p><b> {</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組p13</p><p> for(int i77=0;i77<n;i77++)</p><p><b&g
13、t; {</b></p><p> p77[i77]=p13[i][i77];</p><p><b> }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組p1</p><p> for(int i33=0;i33<n;i33++)</p><p><
14、b> {</b></p><p> p33[i33]=p1[i][i33];</p><p><b> }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組</p><p> for(int i44=0;i44<n;i44++)</p><p><
15、b> {</b></p><p> p44[i44]=p14[i][i44];</p><p><b> }</b></p><p> //p77,p33,p44冒泡排序</p><p> wensen_mp(p77,n);</p><p> wensen_mp(p3
16、3,n);</p><p> wensen_mp(p44,n);</p><p> //開始進(jìn)行比較,p12的每一行與p23的每一行進(jìn)行比較</p><p> for(int y=i;y<n;y++)</p><p><b> {</b></p><p><b> tt=
17、0;</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組</p><p> for(int i88=0;i88<n;i88++)</p><p><b> {</b></p><p> p88[i88]=p23[y][i88];</p><p><b>
18、 }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組</p><p> for(int i55=0;i55<n;i55++)</p><p><b> {</b></p><p> p55[i55]=p2[y][i55];</p><p><b>
19、 }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組</p><p> for(int i66=0;i66<n;i66++)</p><p><b> {</b></p><p> p66[i66]=p24[y][i66];</p><p><b>
20、; }</b></p><p> //p88,p55,p66冒泡排序</p><p> wensen_mp(p88,n);</p><p> wensen_mp(p55,n);</p><p> wensen_mp(p66,n);</p><p><b> //開始比較</b&g
21、t;</p><p> for(int a=0;a<n;a++)</p><p><b> {</b></p><p> if(p77[a]==p88[a])</p><p><b> {</b></p><p><b> tt=a;</b&g
22、t;</p><p> if(a==n-1)//也就是各個(gè)都相等,找到匹配</p><p><b> {</b></p><p> //開始進(jìn)行鄰接矩陣對應(yīng)位置比較</p><p> for(int b=0;b<n;b++)</p><p><b> {</b>
23、;</p><p> if(p33[b]==p55[b])</p><p><b> {</b></p><p><b> continue;</b></p><p><b> }</b></p><p> else if(b<n-1)&
24、lt;/p><p><b> {</b></p><p> cout<<"不同構(gòu)\n";</p><p><b> return;</b></p><p><b> }</b></p><p><b> }
25、</b></p><p> //開始進(jìn)行同或矩陣</p><p> for(int c=0;c<n;c++)</p><p><b> {</b></p><p> if(p44[c]==p66[c])</p><p><b> {</b><
26、/p><p><b> continue;</b></p><p><b> }</b></p><p> else if(c<n-1)</p><p><b> {</b></p><p> cout<<"不同構(gòu)\n&
27、quot;;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> ttt++;//表示成功匹配一行</p><p> //進(jìn)行行行轉(zhuǎn)換p2</p&
28、gt;<p> for(int u1=0;u1<n;u1++)</p><p><b> {</b></p><p> t=p2[i][u1];</p><p> p2[i][u1]=p2[y][u1];</p><p> p2[y][u1]=t;</p><p>&
29、lt;b> }</b></p><p> for(int u11=0;u11<n;u11++)</p><p><b> {</b></p><p> t=p2[u11][i];</p><p> p2[u11][i]=p2[u11][y];</p><p>
30、p2[u11][y]=t;</p><p><b> }</b></p><p> //進(jìn)行行行轉(zhuǎn)換p23</p><p> for(int u2=0;u2<n;u2++)</p><p><b> {</b></p><p> t=p23[i][u2];&l
31、t;/p><p> p23[i][u2]=p23[y][u2];</p><p> p23[y][u2]=t;</p><p><b> }</b></p><p> for(int u22=0;u22<n;u22++)</p><p><b> {</b><
32、;/p><p> t=p23[u22][i];</p><p> p23[u22][i]=p23[u22][y];</p><p> p23[u22][y]=t;</p><p><b> }</b></p><p> //進(jìn)行行行轉(zhuǎn)換p24</p><p> fo
33、r(int u3=0;u3<n;u3++)</p><p><b> {</b></p><p> t=p24[i][u3];</p><p> p24[i][u3]=p24[y][u3];</p><p> p24[y][u3]=t;</p><p><b> }<
34、;/b></p><p> for(int u33=0;u33<n;u33++)</p><p><b> {</b></p><p> t=p24[u33][i];</p><p> p24[u33][i]=p24[u33][y];</p><p> p24[u33][y]
35、=t;</p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {<
36、/b></p><p><b> continue;</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(y==n-1)//一直循環(huán)到最后都未找到匹配</p><p><
37、;b> {</b></p><p> cout<<"不同構(gòu)\n";</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p>
38、<p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> //上面的匹配沒有問題,則進(jìn)行行替換</p>
39、<p> if(tt==n-1)</p><p><b> {</b></p><p> if(ttt==n)</p><p><b> {</b></p><p> cout<<"同構(gòu)\n";</p><p><b&
40、gt; return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> break;//成功跳出循環(huán)判斷下一行</p><p>&l
41、t;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 基于矩陣變
42、換算法的計(jì)算復(fù)雜度分析(最好、最差、平均情況復(fù)雜度):</p><p> 1.同構(gòu)最好情況是:每一行都互相對應(yīng),所以復(fù)雜度為:3n^2+3n^3+8n^2</p><p> 時(shí)間復(fù)雜度為O(n^3)。</p><p> 2.同構(gòu)最壞情況是:每一行都與最后一行對應(yīng),所以復(fù)雜度為:3n^2+3n^3+8n*n!</p><p> 時(shí)間復(fù)雜
43、度為O(n*n!)</p><p> 3.所以平均時(shí)間復(fù)雜度為O(n*n!)</p><p> 總結(jié)綜合實(shí)驗(yàn)心得體會(huì):</p><p><b> 1.實(shí)例演示</b></p><p><b> 鄰接矩陣:</b></p><p><b> 實(shí)驗(yàn)體會(huì)<
44、/b></p><p> 本課程設(shè)計(jì)是為了判斷無向圖是否同構(gòu),采用了較為容易實(shí)現(xiàn)的鄰接矩陣,同時(shí)用到了同型矩陣、行間異或矩陣、行間同或矩陣等知識。知道了同構(gòu)當(dāng)且僅當(dāng)兩圖的鄰接矩陣、行間同或矩陣、行間異或矩陣具有相同的行行置換。通過他們之間對應(yīng)的關(guān)系,我寫出了這個(gè)算法,并已經(jīng)初步測試過,能正確判斷圖是否同構(gòu)。通過本次的課程設(shè)計(jì),讓我更好的了解了算法的重要性,一個(gè)優(yōu)異的算法能極大的減少運(yùn)行時(shí)間。在本課程設(shè)計(jì)上
45、,在異或矩陣的比對上,為了更好的實(shí)現(xiàn)元素比對,我采用了了冒泡排序法,可以讓它實(shí)現(xiàn)有序的比對,這樣就減少了比對的次數(shù),減少運(yùn)算時(shí)間。本算法還有挺多改進(jìn)的地方,例如,算法復(fù)雜度太大,所以算法還有待進(jìn)一步改善,以達(dá)到更優(yōu)。</p><p><b> //完全代碼</b></p><p> #include<iostream></p><p
46、> using namespace std;</p><p><b> //定義函數(shù)</b></p><p> //22222222222222222222222同型矩陣</p><p> void wensen_tx(int **p1,int **p2,int n)</p><p><b>
47、{</b></p><p> for(int i=0;i<n;i++)</p><p><b> {</b></p><p> for(int j=0;j<n;j++)</p><p><b> {</b></p><p> if(p1[i]
48、[j]>0)</p><p><b> {</b></p><p> p2[i][j]=1;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&l
49、t;/p><p> p2[i][j]=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><
50、p> //3333333333333333333333異或矩陣</p><p> void wensen_yh(int **p1,int **p2,int **p3,int n)</p><p><b> {</b></p><p> for( int i=0;i<n;i++)</p><p><
51、;b> {</b></p><p> for(int j=0;j<n;j++)</p><p><b> {</b></p><p><b> if(i==j)</b></p><p><b> {</b></p><p&g
52、t; p3[i][j]=p1[i][i];</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> int sum1,sum12;</p><p><b&g
53、t; sum1=0;</b></p><p> for(int k=0;k<n;k++)</p><p><b> {</b></p><p> if(p2[i][k]==p2[j][k])</p><p><b> {</b></p><p>
54、<b> sum12=0;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> sum12=1;</b></p>
55、;<p><b> }</b></p><p> sum1=sum1+(p1[i][k]+p1[j][k])*sum12;</p><p><b> }</b></p><p> p3[i][j]=sum1;</p><p><b> }</b><
56、/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> ////44444444444444444同或矩陣</p><p> void wensen_th(int **p1,
57、int **p2,int **p4,int n)</p><p><b> {</b></p><p> for(int i=0;i<n;i++)</p><p><b> {</b></p><p> for(int j=0;j<n;j++)</p><p&
58、gt;<b> {</b></p><p><b> if(i==j)</b></p><p><b> {</b></p><p> p4[i][j]=p1[i][i];</p><p><b> }</b></p><p&
59、gt;<b> else</b></p><p><b> {</b></p><p> int sum1,sum12;</p><p><b> sum1=0;</b></p><p> for(int k=0;k<n;k++)</p><
60、p><b> {</b></p><p> if(p2[i][k]==p2[j][k])</p><p><b> {</b></p><p><b> sum12=1;</b></p><p><b> }</b></p>
61、<p><b> else</b></p><p><b> {</b></p><p><b> sum12=0;</b></p><p><b> }</b></p><p> sum1=sum1+(p1[i][k]+p1[j][
62、k])*sum12;</p><p><b> }</b></p><p> p4[i][j]=sum1;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&
63、lt;/p><p><b> }</b></p><p> //////////////////////////輸出函數(shù)</p><p> void wensen_out(int **p,char *s,int n)</p><p><b> {</b></p><p>
64、<b> cout<<s;</b></p><p> cout<<"\n";</p><p> for(int i=0;i<n;i++)</p><p><b> {</b></p><p> for(int j=0;j<n;j++)
65、</p><p><b> {</b></p><p> cout<<p[i][j];</p><p> cout<<"\t";</p><p><b> }</b></p><p> cout<<"
66、\n";</p><p><b> }</b></p><p><b> }</b></p><p> //*********************************冒泡排序</p><p> void wensen_mp(int mp[],int n)</p>
67、<p><b> {</b></p><p><b> int t;</b></p><p> for(int i=0;i<n-1;i++)</p><p><b> {</b></p><p> for(int j=0;j<n-1-i;j+
68、+)</p><p><b> {</b></p><p> if(mp[j]>mp[j+1])</p><p><b> {</b></p><p><b> t=mp[j];</b></p><p> mp[j]=mp[j+1];&l
69、t;/p><p> mp[j+1]=t;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p
70、> /////////////////////////核心代碼</p><p><b> //異或矩陣行轉(zhuǎn)換</b></p><p> void wensen_hx(int **p1,int **p13,int **p14,int **p2,int **p23,int **p24,int n)</p><p><b>
71、{</b></p><p> int *p77=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p13</p><p> int *p88=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p23</p><p> int *p33=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p1</p><p> i
72、nt *p44=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p14</p><p> int *p55=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p2</p><p> int *p66=new int[n];//用于替換的臨時(shí)一維數(shù)組,存放p24</p><p> int *p99=new int[n];//用于行行替換的臨時(shí)數(shù)組<
73、;/p><p><b> int t;</b></p><p> int tt;//進(jìn)行跳轉(zhuǎn)判斷</p><p> int ttt=0;//進(jìn)行跳轉(zhuǎn)判斷</p><p><b> //行行替換</b></p><p> for( int i=0;i<n;i++)&
74、lt;/p><p><b> {</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組p13</p><p> for(int i77=0;i77<n;i77++)</p><p><b> {</b></p><p> p77[i77]=p13[i][i7
75、7];</p><p><b> }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組p1</p><p> for(int i33=0;i33<n;i33++)</p><p><b> {</b></p><p> p33[i33]=p1[i][
76、i33];</p><p><b> }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組</p><p> for(int i44=0;i44<n;i44++)</p><p><b> {</b></p><p> p44[i44]=p14[i]
77、[i44];</p><p><b> }</b></p><p> //p77,p33,p44冒泡排序</p><p> wensen_mp(p77,n);</p><p> wensen_mp(p33,n);</p><p> wensen_mp(p44,n);</p>
78、<p> //開始進(jìn)行比較,p12的每一行與p23的每一行進(jìn)行比較</p><p> for(int y=i;y<n;y++)</p><p><b> {</b></p><p><b> tt=0;</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組</
79、p><p> for(int i88=0;i88<n;i88++)</p><p><b> {</b></p><p> p88[i88]=p23[y][i88];</p><p><b> }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組<
80、/p><p> for(int i55=0;i55<n;i55++)</p><p><b> {</b></p><p> p55[i55]=p2[y][i55];</p><p><b> }</b></p><p> //首先進(jìn)行行賦值給另外一個(gè)數(shù)組<
81、/p><p> for(int i66=0;i66<n;i66++)</p><p><b> {</b></p><p> p66[i66]=p24[y][i66];</p><p><b> }</b></p><p> //p88,p55,p66冒泡排序&l
82、t;/p><p> wensen_mp(p88,n);</p><p> wensen_mp(p55,n);</p><p> wensen_mp(p66,n);</p><p><b> //開始比較</b></p><p> for(int a=0;a<n;a++)</p&g
83、t;<p><b> {</b></p><p> if(p77[a]==p88[a])</p><p><b> {</b></p><p><b> tt=a;</b></p><p> if(a==n-1)//也就是各個(gè)都相等,找到匹配</p
84、><p><b> {</b></p><p> //開始進(jìn)行鄰接矩陣對應(yīng)位置比較</p><p> for(int b=0;b<n;b++)</p><p><b> {</b></p><p> if(p33[b]==p55[b])</p>&l
85、t;p><b> {</b></p><p><b> continue;</b></p><p><b> }</b></p><p> else if(b<n-1)</p><p><b> {</b></p>&l
86、t;p> cout<<"不同構(gòu)\n";</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> //開始進(jìn)行同或矩陣</p>&
87、lt;p> for(int c=0;c<n;c++)</p><p><b> {</b></p><p> if(p44[c]==p66[c])</p><p><b> {</b></p><p><b> continue;</b></p>
88、;<p><b> }</b></p><p> else if(c<n-1)</p><p><b> {</b></p><p> cout<<"不同構(gòu)\n";</p><p><b> return;</b>&
89、lt;/p><p><b> }</b></p><p><b> }</b></p><p> ttt++;//表示成功匹配一行</p><p> //進(jìn)行行行轉(zhuǎn)換p2</p><p> for(int u1=0;u1<n;u1++)</p>&l
90、t;p><b> {</b></p><p> t=p2[i][u1];</p><p> p2[i][u1]=p2[y][u1];</p><p> p2[y][u1]=t;</p><p><b> }</b></p><p> for(int u11=
91、0;u11<n;u11++)</p><p><b> {</b></p><p> t=p2[u11][i];</p><p> p2[u11][i]=p2[u11][y];</p><p> p2[u11][y]=t;</p><p><b> }</b>
92、</p><p> //進(jìn)行行行轉(zhuǎn)換p23</p><p> for(int u2=0;u2<n;u2++)</p><p><b> {</b></p><p> t=p23[i][u2];</p><p> p23[i][u2]=p23[y][u2];</p>&
93、lt;p> p23[y][u2]=t;</p><p><b> }</b></p><p> for(int u22=0;u22<n;u22++)</p><p><b> {</b></p><p> t=p23[u22][i];</p><p>
94、 p23[u22][i]=p23[u22][y];</p><p> p23[u22][y]=t;</p><p><b> }</b></p><p> //進(jìn)行行行轉(zhuǎn)換p24</p><p> for(int u3=0;u3<n;u3++)</p><p><b>
95、{</b></p><p> t=p24[i][u3];</p><p> p24[i][u3]=p24[y][u3];</p><p> p24[y][u3]=t;</p><p><b> }</b></p><p> for(int u33=0;u33<n;u33
96、++)</p><p><b> {</b></p><p> t=p24[u33][i];</p><p> p24[u33][i]=p24[u33][y];</p><p> p24[u33][y]=t;</p><p><b> }</b></p>
97、<p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> continue;</b>
98、;</p><p><b> }</b></p><p><b> }</b></p><p> else if(y==n-1)//一直循環(huán)到最后都未找到匹配</p><p><b> {</b></p><p> cout<<&q
99、uot;不同構(gòu)\n";</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>&l
100、t;b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> //上面的匹配沒有問題,則進(jìn)行行替換</p><p> if(tt==n-1)</p><p><b> {&
101、lt;/b></p><p> if(ttt==n)</p><p><b> {</b></p><p> cout<<"同構(gòu)\n";</p><p><b> return;</b></p><p><b> }&
102、lt;/b></p><p><b> else</b></p><p><b> {</b></p><p> break;//成功跳出循環(huán)判斷下一行</p><p><b> }</b></p><p><b> }<
103、;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> ///////////////////////////////////////主程序</p><p&g
104、t; int main()</p><p><b> {</b></p><p> int n;//圖的頂點(diǎn)數(shù)</p><p> char *s;//字符串提示</p><p> char ss='y';</p><p> cout<<"\n&qu
105、ot;;</p><p> cout<<"**********************歡迎進(jìn)入李文森圖同構(gòu)判斷*******************\n\n\n";</p><p> while(ss=='y')</p><p><b> {</b></p><p>
106、 cout<<"請輸入圖的頂點(diǎn)個(gè)數(shù)\n";</p><p> cin>>n;//接收第一個(gè)圖的頂點(diǎn)個(gè)數(shù)</p><p> if(cin.fail())</p><p><b> {</b></p><p> cout<<"**********輸入
107、錯(cuò)誤,請重新輸入*************\n";</p><p><b> continue;</b></p><p><b> }</b></p><p><b> else{</b></p><p> //************************
108、*****************創(chuàng)建數(shù)組</p><p> //圖一鄰接矩陣數(shù)組</p><p> int **p1=new int*[n];</p><p> for(int i1=0;i1<n;i1++)</p><p><b> {</b></p><p> p1[i1]=
109、new int[n];</p><p><b> }</b></p><p><b> //圖一同型矩陣</b></p><p> int **p12=new int*[n];</p><p> for(i1=0;i1<n;i1++)</p><p><b
110、> {</b></p><p> p12[i1]=new int[n];</p><p><b> }</b></p><p><b> //圖一行異或矩陣</b></p><p> int **p13=new int*[n];</p><p>
111、 for(i1=0;i1<n;i1++)</p><p><b> {</b></p><p> p13[i1]=new int[n];</p><p><b> }</b></p><p><b> //圖一行同或矩陣</b></p><p&
112、gt; int **p14=new int*[n];</p><p> for(i1=0;i1<n;i1++)</p><p><b> {</b></p><p> p14[i1]=new int[n];</p><p><b> }</b></p><p>
113、; //圖二鄰接矩陣數(shù)組</p><p> int **p2=new int*[n];</p><p> for(int i2=0;i2<n;i2++)</p><p><b> {</b></p><p> p2[i2]=new int[n];</p><p><b>
114、; }</b></p><p><b> //圖二同型矩陣</b></p><p> int **p22=new int*[n];</p><p> for(i1=0;i1<n;i1++)</p><p><b> {</b></p><p>
115、p22[i1]=new int[n];</p><p><b> }</b></p><p><b> //圖二行異或矩陣</b></p><p> int **p23=new int*[n];</p><p> for(i1=0;i1<n;i1++)</p><p
116、><b> {</b></p><p> p23[i1]=new int[n];</p><p><b> }</b></p><p><b> //圖二行同或矩陣</b></p><p> int **p24=new int*[n];</p>&
117、lt;p> for(i1=0;i1<n;i1++)</p><p><b> {</b></p><p> p24[i1]=new int[n];</p><p><b> }</b></p><p> //***********************************
118、***************</p><p> //接收第一個(gè)鄰接矩陣的二維數(shù)組</p><p> cout<<"請輸入第一個(gè)圖的鄰接矩陣\n";</p><p> for(int i11=0;i11<n;i11++)</p><p><b> {</b></p>
119、;<p> for(int j11=0;j11<n;j11++)</p><p><b> {</b></p><p> cin>>p1[i11][j11];</p><p><b> }</b></p><p><b> }</b>&
120、lt;/p><p> //接收第二個(gè)鄰接矩陣的二維數(shù)組</p><p> cout<<"請輸入第二個(gè)圖的鄰接矩陣\n";</p><p> for(int i22=0;i22<n;i22++)</p><p><b> {</b></p><p> fo
121、r(int j22=0;j22<n;j22++)</p><p><b> {</b></p><p> cin>>p2[i22][j22];</p><p><b> }</b></p><p><b> }</b></p><p
122、> //**************************************************</p><p><b> //圖一同型矩陣</b></p><p> wensen_tx(p1,p12,n);</p><p><b> //圖一異或矩陣</b></p><p&g
123、t; wensen_yh(p1,p12,p13,n);</p><p><b> //圖一同或矩陣</b></p><p> wensen_th(p1,p12,p14,n);</p><p><b> //圖二同型矩陣</b></p><p> wensen_tx(p2,p22,n);&l
124、t;/p><p><b> //圖二異或矩陣</b></p><p> wensen_yh(p2,p22,p23,n);</p><p><b> //圖二同或矩陣</b></p><p> wensen_th(p2,p22,p24,n);</p><p> //***
125、******************************************輸出</p><p><b> /*</b></p><p> s="圖一鄰接矩陣輸出:";</p><p> out(p1,s,n);</p><p> s="圖一同型矩陣輸出:";<
126、;/p><p> out(p12,s,n);</p><p> s="圖一異或矩陣輸出:";</p><p> out(p13,s,n);</p><p> s="圖一同或矩陣輸出:";</p><p> out(p14,s,n);</p><p>
127、 s="圖二鄰接矩陣輸出:";</p><p> out(p2,s,n);</p><p> s="圖二同型矩陣輸出:";</p><p> out(p22,s,n);</p><p> s="圖二異或矩陣輸出:";</p><p> out(p2
128、3,s,n);</p><p> s="圖二同或矩陣輸出:";</p><p> out(p24,s,n);</p><p><b> */</b></p><p> ////************************************核心代碼,進(jìn)行行轉(zhuǎn)換</p>&
129、lt;p> cout<<"\n";</p><p> cout<<"\n";</p><p> wensen_hx(p1,p13,p14,p2,p23,p24,n);</p><p> cout<<"\n";</p><p> //
130、********************************************</p><p><b> /*</b></p><p> s="圖二鄰接矩陣輸出:";</p><p> wensen_out(p2,s,n);</p><p> s="圖二同型矩陣輸出:&qu
131、ot;;</p><p> wensen_out(p22,s,n);</p><p> s="圖二異或矩陣輸出:";</p><p> wensen_out(p23,s,n);</p><p> s="圖二同或矩陣輸出:";</p><p> wensen_out(p2
132、4,s,n);</p><p><b> */</b></p><p> cout<<"\n\n\n*********是否繼續(xù)(y?n): ";</p><p><b> cin>>ss;</b></p><p><b> }</
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于子圖同構(gòu)的XFA壓縮算法設(shè)計(jì).pdf
- 基于復(fù)雜鄰接矩陣和散列函數(shù)的圖同構(gòu)算法---畢業(yè)論文
- 頁面置換算法課程設(shè)計(jì)
- 基于矩陣變換算法的隱私匹配方案研究.pdf
- 虹膜識別中Gabor變換算法的研究.pdf
- 圖像二維整數(shù)離散余弦變換(dct)_變換算法和dsp實(shí)現(xiàn)課程設(shè)計(jì)
- 頁面置換算法模擬程序課程設(shè)計(jì)
- 頁面置換算法操作系統(tǒng)課程設(shè)計(jì)
- 頁面置換算法操作系統(tǒng)課程設(shè)計(jì)
- Smoothlet變換算法研究.pdf
- 一種新的圖同構(gòu)判定算法——電路模擬法.pdf
- 操作系統(tǒng)常用頁面置換算法課程設(shè)計(jì)
- 頁面置換算法模擬程序課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)---頁面置換算法的模擬
- 算法分析與設(shè)計(jì)課程設(shè)計(jì)
- 快速傅立葉變換算法研究與設(shè)計(jì).pdf
- 基于隨機(jī)矩陣變換和貪婪算法的快速PCA算法.pdf
- 操作系統(tǒng)課程設(shè)計(jì)-頁面置換算法c語言
- 操作系統(tǒng)課程設(shè)計(jì)--頁面置換算法的模擬實(shí)現(xiàn)_
- 操作系統(tǒng).課程設(shè)計(jì)--頁面置換算法模擬設(shè)計(jì)
評論
0/150
提交評論