版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、教學(xué)單位計算機科學(xué)與技術(shù)學(xué)生學(xué)號 012301714315HUBEI ENGINEERING UNIVERSITY數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告書題 目稀疏矩陣運算器學(xué)生姓名 秦豹專業(yè)名稱 指導(dǎo)教師 李志敏實驗?zāi)康模?深入研究數(shù)組的存儲表示和實現(xiàn)技術(shù),熟悉廣義表存儲結(jié)構(gòu)的特性。要求以需要分析 : 稀疏矩陣是指那些多數(shù)元素為零的矩陣。利用“稀疏”特點進行存儲和計算可 以大大節(jié)省存儲空間, 提高計算效率。 實現(xiàn)一個能進行稀疏矩陣基本運算的運算器。 帶“行邏輯鏈接信息”的三元組順序表存儲稀疏矩陣,實現(xiàn)兩矩陣的相加、相減、相乘等運 算。輸入以三元組表示,輸出以通常的陣列形式列出。軟件平臺: Windows 20
2、00 ,Visual C 6.0或 WINTC概要設(shè)計: ADT Array 數(shù)據(jù)對象 :D = aij | 0 i b1-1,0 j b2-1數(shù)據(jù)關(guān)系 :R = ROW, COL ROW = | 0 i b1-2, 0 j b2-1COL = | 0 i b1-1,0 j12 3 XI = H-丿a卜卜 隔爭素素 榕兀兀元 r工mw J - - - - pl JJJdJJH C. i- hj 衣夯萬JR 介 T- T- T -LT01T11J01 -z 零-123 幵);:; 裕兀一兀元 亠工垂蠡 M- PLR - tit亍亍 -z 12 3 - 于 格元元元 空/r?二二二 Pv3jdjd
3、 (一丁- Tc C5以T-T ia&1 c C亠雪盍0605-1-3A R0-4 fcS-s+tulFLul-青一A 0 4的形形形 r龕 A三二三1 0 fl0 0 4A mBi 行式古式 的年 _-二:mEZ二 S&L.- : : ; E B 7 P 謔請注墾-F矩4ZEihJE 數(shù)住pf負(fù)孚KilkK 非兀元元 3 0勺勺切 -* sis 的XAA 目莖羽.世種 項雪式式 的的形蛍 g組組組 進矩兀元_兀 賈三三三A: 入輸用用用陣 靈哨請請請矩矩陣的轉(zhuǎn)置-*100B7-2 2 6 32 12 2 );1:132 格兀元一兀 JAtLrRrEi L - -/丁L丁一T -z c c (
4、丄也T一非元元兀 sn 的、入入入 的的形琢形 進矩元元元4非元元入輸用用黒L冃主冃土墾冃芒wB :10240 12矩陣的乘法程序源碼:#in clude#in clude#in clude#define MAXSIZE 40假設(shè)非零元素個數(shù)的最大值為40#define MAXRC 20/假設(shè)矩陣的最大行數(shù)為20typedef int ElemType;typedef structint i,j;非零元的行下標(biāo)和列下標(biāo)ElemType e; /非零元的值Triple;typedef structTriple dataMAXSIZE+1;int rposMAXRC+1;/各行第一個非零元在三元組
5、的位置表int hs,ls,fls;TSMatrix,*Matrix;void Creat(TSMatrix &M)int i,k;for(i=1;i=MAXRC+1;i+)M.rposi=0;printf(請輸入矩陣的行數(shù)、列數(shù)和非零元個數(shù)(以空格隔開):);scan f(%d %d %d,&M.hs,&M.ls,&M.fls);for(i=1;i=M.fls;i+)printf( 請用三元組形式輸入矩陣的元素 (行 列 非零元素 ):); scanf(%d %d %d,&M.datai.i,&M.datai.j,&M.datai.e); for(i=1,k=1;i=M.hs;i+)M.rp
6、osi=k;while(M.datak.i=i & k=M.fls) k+;void Xiangjia(TSMatrix A,TSMatrix B,TSMatrix &C,int n)int a,b,temp,l;C.hs=A.hs;C.ls=A.ls; a=b=l=1; while(a=A.fls & b=B.fls) if(A.dataa.i=B.datab.i) if(A.dataa.jB.datab.j) C.datal=B.datab; C.datal+.e=n*B.datab+.e; elsetemp=A.dataa.e+n*B.datab.e;if(temp) C.datal=A
7、.dataa;C.datal.e=temp;l+; a+;b+; else if(A.dataa.iB.datab.i)C.datal+=A.dataa+;else C.datal=B.datab; C.datal+.e=n*B.datab+.e;while(a=A.fls)C.datal+=A.dataa+;while(b=B.fls)C.datal=B.datab; C.datal+.e=n*B.datab+.e; C.fls=l-1;int Xiangcheng(TSMatrix A,TSMatrix B,TSMatrix &Q)int arow,brow,ccol,tp,p,q,t;i
8、nt ctempMAXRC+1; if(A.ls!=B.hs) return 0; Q.hs=A.hs;Q.ls=B.ls;Q.fls=0;if(A.fls*B.fls)for(arow=1;arow=A.hs;arow+)for(ccol=1;ccol=Q.ls;ccol+)ctempccol=0;Q.rposarow=Q.fls+1; if(arowA.hs) tp=A.rposarow+1;else tp=A.fls+1;for(p=A.rposarow;ptp;p+)brow=A.datap.j; if(browB.hs) t=B.rposbrow+1;else t=B.fls+1;
9、for(q=B.rposbrow;qt;q+)ccol=B.dataq.j; ctempccol+=A.datap.e*B.dataq.e;for(ccol=1;ccolMAXSIZE) return 0; Q.dataQ.fls.i=arow; Q.dataQ.fls.j=ccol; Q.dataQ.fls.e=ctempccol;return 1;void Print_SMatrix(TSMatrix M)int k,l,n;Matrix p;p=&M;for(k=1,n=1;khs;k+)for(l=1;lls;l+)if(p-datan.i=k & p-datan.j=l)printf
10、(%5d,p-datan.e); n+;elseprintf(%5d,0);printf(n);printf(n);void Zhuanzhi(TSMatrix *a,TSMatrix *b)int q,col,p;b-hs=a-ls;b-ls=a-hs;b-fls=a-fls;if(b-fls)q=1;for(col=1;colls;col+) for(p=1;pfls;p+) if(a-datap.j=col) b-dataq.i=a-datap.j;b-dataq.j=a-datap.i; b-dataq.e=a-datap.e; +q;void Destory_SMatrix(TSMa
11、trix &M)M.hs=M.ls=M.fls=0;void main()TSMatrix A,B,C;TSMatrix *p=&A,*q=&B; int flag,n;while(1)system(cls); printf(nnn);printf(t i1n);printf(t |* 稀疏矩陣的加、減、轉(zhuǎn)、乘 *I n);printf(t |1n);printf(t|1、稀疏矩陣的加法|n);printf(t|2、稀疏矩陣的減法|n);printf(t|3、稀疏矩陣的轉(zhuǎn)置|n);printf(t|4、稀疏矩陣的乘法|n);printf(t|5、退出該應(yīng)用程序|n);prin tf(t 11n
12、);printf( 輸入要進行的項目的編號 :); scanf(%d,&flag);if(flag=5) break;Creat(A);printf( 矩陣 A:n); Print_SMatrix(A);switch(flag) case 1: Creat(B);n=1;printf( 矩陣 B:n); Print_SMatrix(B);if(A.hs=B.hs & A.ls=B.ls) printf(A+B:n);Xiangjia(A,B,C,n);Print_SMatrix(C);else printf( 錯誤 !行列不一致 n); break;case 2: Creat(B);n=-1;printf( 矩陣 B:n);Print_SMatrix(B); if(A.hs=B.hs & A.ls=B.ls) printf(A-B:n); Xiangjia(A,B,C,n); Print_SMatrix(C);else printf( 錯誤 ! 行列不一致 n); break;case 3: printf(A-B:n);Zhuanzhi(p,q); Print_SMatrix(B); break;case 4: Creat(B); printf( 矩陣 B:n); Print_SMatrix(B); printf(A*B:n); n=Xiangcheng(A,B
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年階梯揀梗機項目可行性研究報告
- 2024年懸掛四鏵梨項目可行性研究報告
- 2024年中國四片多士爐市場調(diào)查研究報告
- 2024年中國三面刃銑刀片市場調(diào)查研究報告
- 導(dǎo)師制實施計劃方案
- 項目安全培訓(xùn)試題答案預(yù)熱題
- 項目安全培訓(xùn)試題【模擬題】
- 托兒所服務(wù)的多元文化與包容教育考核試卷
- 環(huán)境友好型產(chǎn)品研發(fā)從源頭控制污染考核試卷
- 天然氣市場機制與發(fā)展調(diào)控考核試卷
- 2023年國開大學(xué)期末考復(fù)習(xí)題-02316-中級財務(wù)會計(一)
- 【護理學(xué)個案護理論文:一例潰瘍性結(jié)腸炎患者的護理5600字】
- 教育政策與法規(guī)全套完整教學(xué)課件
- GPS測量與數(shù)據(jù)處理完整整套教學(xué)課件
- 護士讀書分享《喚醒護理》
- 高標(biāo)準(zhǔn)農(nóng)田灌溉與排水工程施工方案
- 《觀察葉片的結(jié)構(gòu)》 說課課件
- 醫(yī)院透析患者安全管理應(yīng)急預(yù)案
- 《BIM技術(shù)的應(yīng)用研究開題報告(含提綱)》
- GB/T 40997-2021經(jīng)外奇穴名稱與定位
- GB/T 27021.1-2017合格評定管理體系審核認(rèn)證機構(gòu)要求第1部分:要求
評論
0/150
提交評論