兩個稀疏矩陣相加_第1頁
兩個稀疏矩陣相加_第2頁
兩個稀疏矩陣相加_第3頁
兩個稀疏矩陣相加_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、#in clude<stdio.h>#in clude<stdlib.h>#defi ne Max 100typ edef structint line;/ 行int column;/ 列int nu mber;/ 非零數(shù)Node;typ edef structint Arrline;/ 行int Arrclou;/ 列int ArrNZ;/非零元素個數(shù)Node dataMax;SP A;void Inp ut(S PA *Head);void En queue(S PA *TC,i nt *tc,S PA *TB,i nt *tb);void AddTogether(

2、SPA *A,S PA *B,S PA *C); void Prin t(S PA *C);void mai n()SPA *A,*B,*C;n");n");A=(S PA *)malloc(sizeof(S PA); B=(S PA *)malloc(sizeof(S PA); C=(S PA *)malloc(sizeof(S PA); prin tf("第一個稀疏矩陣:Inp ut(A);prin tf("第二個稀疏矩陣:Inp ut(B);AddTogether(A,B,C);Prin t(C);void Inpu t(S PA *Head)in

3、t i,j;printf("輸入稀疏矩陣的行數(shù): scan f("%d",&Head->Arrli ne); printf("輸入稀疏矩陣的列數(shù): scan f("%d",&Head->Arrclou); printf("輸入非零元素的個數(shù): scan f("%d",&Head->ArrNZ); for(i=0;i<Head->ArrNZ;i+) ”);”);");printf("輸入第%d個非零元素的行號: scan f(&quo

4、t;%d",&Head->datai.li ne);printf("輸入第 %d個非零元素的列號: scan f("%d",&Head->datai.colum n);printf("輸入第 %d個非零元素的數(shù)值: scan f("%d",&Head->datai. number);”,i+1);”,i+1);",i+1);void En queue(S PA *TC,i nt *tc,S PA *TB,i nt *tb)TC->data*tc.li ne =TB-&

5、gt;data*tb.li ne; TC->data*tc.colu mn=TB->data*tb.colu mn;TC->data*tc. nu mber=TB->data*tb .n umber; *tc=*tc+1;*tb=*tb+1;void AddTogether(SPA *A,S PA *B,S PA *C)int i=O,j=O,k=O;for(i=0;i<Max;i+)C->datai. nu mber=0;C->Arrl in e=A->Arrl ine;C->Arrclou=A->Arrclou;C->Arr

6、NZ=A->ArrNZ+B->ArrN Z;i=0;j=0;k=0;while(i<A->ArrNZ) && (j<B->ArrNZ)if(A->datai.li ne < B->dataj.li ne)/找出最小 行號En queue(C,&k,A,& i);if(A->datai.li ne = B->dataj.li ne)if(A->datai.colu mn > B->dataj.colu mn) En queue(C,&k,B,&j);if(A->

7、;datai.colu mn < B->dataj.colu mn) En queue(C,&k,A, &i);if(A->datai.colu mn = B->dataj.colu mn) En queue(C,&k,A, &i);C->datak-1. nu mber+=B->dataj+. nu mber;if(A->datai.li ne > B->dataj.li ne)En queue(C,&k,B,&j);while(i < A->ArrNZ)En queue(C,&

8、amp;k,A,&i); while(j < B->ArrNZ)En queue(C,&k,B,&j); for(i=0;i+1<C->ArrNZ;i+) if(C->datai. nu mber=0)for(j=i;j+1<C->ArrNZ;j+)C->dataj.li ne=C->dataj+1.li ne;C->dataj.colu mn=C->dataj+1.colu mn;C->dataj. nu mber=C->dataj+1. nu mber; C->ArrNZ-;i-;i

9、f(C->dataC->ArrNZ-1 .n umber=0)C->ArrNZ-;void Prin t(S PA *C)int i,j,k=0,z=0,d=0,flag;prin tf("n");prin tf("nC->Arrli ne= %d",C->Arrli ne); prin tf("nC->Arrclou= %d",C->Arrclou);prin tf("nC->ArrNZ= %dn",C->ArrNZ); for(i=1;i<=C->Arrli ne;i+)/ 行for(j=1;j<=C->Arrclou;j+)/ 列 flag=0;for(k=d;k<C->ArrN Z;k+)if( (i=C->datad.li ne) &&am

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論