稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

ID:1600294

大?。?8.00 KB

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

時(shí)間:2017-11-12

稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第1頁(yè)
稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第2頁(yè)
稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第3頁(yè)
稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第4頁(yè)
稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第5頁(yè)
資源描述:

《稀疏矩陣快速轉(zhuǎn)置 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、南昌航空大學(xué)實(shí)驗(yàn)報(bào)告課程名稱(chēng):數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)名稱(chēng):實(shí)驗(yàn)五稀疏矩陣的存儲(chǔ)和快速轉(zhuǎn)置班級(jí):080611學(xué)生姓名:學(xué)號(hào):08指導(dǎo)教師評(píng)定:簽名:題目:假設(shè)稀疏矩陣A采用三元組表表示,編寫(xiě)程序?qū)崿F(xiàn)該矩陣的快速轉(zhuǎn)置要求:輸入一個(gè)稀疏矩陣A,由程序?qū)⑵滢D(zhuǎn)換成三元組表存儲(chǔ);轉(zhuǎn)置后的三元組表,由程序?qū)⑵滢D(zhuǎn)換成矩陣形式后輸出。一、需求分析1.用戶(hù)可以根據(jù)自己的需求輸入任意一個(gè)稀疏矩陣,通過(guò)程序?qū)⑵滢D(zhuǎn)換成三元組存儲(chǔ)方式;2.并且能夠完成矩陣的轉(zhuǎn)置功能,要求需要使用的方法是快速轉(zhuǎn)置的方法。3.最后要夠顯示原矩陣和轉(zhuǎn)置后的矩陣讓用戶(hù)能進(jìn)行比較。4.程序執(zhí)行的命令包括:(

2、1)構(gòu)造稀疏矩陣M(2)求轉(zhuǎn)轉(zhuǎn)矩陣T(3)顯示(打?。┚仃嚩?、概要設(shè)計(jì)⒈為實(shí)現(xiàn)上述算法,需要線性表的抽象數(shù)據(jù)類(lèi)型:ADTSparseMatrix{數(shù)據(jù)對(duì)象:D={aij:

3、aij∈TermSet,i=1…m,m≥0,j=1…n,n≥0m和n分別成為矩陣的行數(shù)和列數(shù)}數(shù)據(jù)關(guān)系:R={Row,Col}Row={

4、1≤i≤m,1≤j≤n-1}Col={

5、1≤i≤m-1,1≤j≤n}基本操作:CreateSMtrix(&M)操作結(jié)果:創(chuàng)建稀疏矩陣M。DestroySMaix(&M)初始條件:稀疏矩陣M

6、已存在。操作結(jié)果:銷(xiāo)毀稀疏矩陣M。PrintSMatrix(L)初始條件:稀疏矩陣M已經(jīng)存在。操作結(jié)果:輸出稀疏矩陣M。CopySMatrix(M,&T)初始條件:稀疏矩陣M已經(jīng)存在。操作結(jié)果:由稀疏矩陣M復(fù)制得到T。TransposeSMatrix(M,&T)初始條件:稀疏矩陣M已經(jīng)存在。操作結(jié)果:求稀疏矩陣M的轉(zhuǎn)轉(zhuǎn)矩陣T。7}ADTSparseMatrix2.本程序有三個(gè)模塊:⑴主程序模塊main(){初始化;{接受命令;顯示結(jié)果;}}⑵矩陣壓縮存儲(chǔ)單元模塊:實(shí)現(xiàn)鏈表抽象數(shù)據(jù)類(lèi)型操作,即函數(shù)的定義模塊;三、詳細(xì)設(shè)計(jì)⒈元素類(lèi)型,結(jié)點(diǎn)類(lèi)型typ

7、edefstruct{inti,j;inte;}Triple;typedefstruct{Tripledata[MAXSIZE+1];intmu,nu,tu;}Tsmatrix;2.對(duì)抽象數(shù)據(jù)類(lèi)型中的部分基本操作的偽碼算法如下:Tsmatrix*creatarray(Tsmatrix*M){intm,n,p=1;intc;printf("pleaseinputthearrayA:");for(m=1;m<=a;m++)for(n=1;n<=b;n++){scanf("%d",&c);if(c!=0){M->data[p].e=c;M->da

8、ta[p].i=m;M->data[p].j=n;p++;}}M->tu=p;M->mu=a;M->nu=b;printf("yuanlaisanyuanzudebiaoshiwei:");for(m=1;m<=M->tu;m++)printf("%3d%3d%3dt",M->data[m].i,M->data[m].j,M->data[m].e);printf("");returnM;}/*三元組快速轉(zhuǎn)置*/Tsmatrix*fasttrans(Tsmatrix*M,Tsmatrix*T)7{intp,col,q,t,m;int

9、num[100];intcpot[100];T->mu=M->nu;T->nu=M->mu;T->tu=M->tu;if(T->tu!=0){for(col=1;col<=M->nu;col++)num[col]=0;for(t=1;t<=M->tu;t++)++num[M->data[t].j];cpot[1]=1;for(col=2;col<=M->nu;col++)cpot[col]=cpot[col-1]+num[col-1];for(p=1;p<=M->tu;++p){col=M->data[p].j;q=cpot[col];T->d

10、ata[q].i=M->data[p].j;T->data[q].j=M->data[p].i;T->data[q].e=M->data[p].e;++cpot[col];}}printf("zhuanzhihoudesanyuanzubiaoshiwei:");for(m=1;m<=T->tu;m++)printf("%3d%3d%3dt",T->data[m].i,T->data[m].j,T->data[m].e);printf("");returnT;}/*輸出三元組函數(shù)*/voidprint(Tsmatrix*T

11、,intx,inty){intm,n,p=1;intd;for(m=1;m<=x;m++){printf("");for(n=1;n<=y;n++

當(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. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(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)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。