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

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

ID:1600294

大小:58.00 KB

頁數(shù):7頁

時間:2017-11-12

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

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

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

2、1)構(gòu)造稀疏矩陣M(2)求轉(zhuǎn)轉(zhuǎn)矩陣T(3)顯示(打?。┚仃嚩⒏乓O(shè)計⒈為實現(xiàn)上述算法,需要線性表的抽象數(shù)據(jù)類型:ADTSparseMatrix{數(shù)據(jù)對象: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é)果:銷毀稀疏矩陣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.本程序有三個模塊:⑴主程序模塊main(){初始化;{接受命令;顯示結(jié)果;}}⑵矩陣壓縮存儲單元模塊:實現(xiàn)鏈表抽象數(shù)據(jù)類型操作,即函數(shù)的定義模塊;三、詳細(xì)設(shè)計⒈元素類型,結(jié)點類型typ

7、edefstruct{inti,j;inte;}Triple;typedefstruct{Tripledata[MAXSIZE+1];intmu,nu,tu;}Tsmatrix;2.對抽象數(shù)據(jù)類型中的部分基本操作的偽碼算法如下: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ù)覽五頁,下載文檔查看全文

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

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