數(shù)據(jù)結(jié)構(gòu)-三元組順序表-稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置_第1頁
數(shù)據(jù)結(jié)構(gòu)-三元組順序表-稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置_第2頁
數(shù)據(jù)結(jié)構(gòu)-三元組順序表-稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置_第3頁
數(shù)據(jù)結(jié)構(gòu)-三元組順序表-稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置_第4頁
數(shù)據(jù)結(jié)構(gòu)-三元組順序表-稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

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

文檔簡介

數(shù)據(jù)結(jié)構(gòu)---三元組順序表------稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置數(shù)據(jù)結(jié)構(gòu)---三元組順序表------稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置數(shù)據(jù)結(jié)構(gòu)---三元組順序表------稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置xxx公司數(shù)據(jù)結(jié)構(gòu)---三元組順序表------稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置文件編號:文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度數(shù)據(jù)結(jié)構(gòu)---三元組順序表------稀疏矩陣的轉(zhuǎn)置和快速轉(zhuǎn)置#include<>#include<>#include<>#defineTURE1#defineFALSE0#defineOK1#defineERROR0#defineINEEASLIBE-1#defineOVERFLOW-2#definemaxsize100typedefintstatus;typedefintelemtype;typedefstruct{ inti,j; elemtypee;}elem;typedefstruct{ elemdata[maxsize+1]; intmu,mn,tu;}matrix;statusshowmatrix(matrixM){ inti,j,k=1; for(i=1;i<=;i++) { for(j=1;j<=;j++) { if(i==[k].i&&j==[k].j) { printf("%d\t",[k].e); k++; } else printf("0\t"); } printf("\n"); } returnOK;}statustrans(matrixM,matrix&T){ inti=1,j=1,k=1; =; =; =; while(i<= { for(;k<=;k++) if[k].j==i) { [j].e=[k].e; [j].i=[k].j; [j].j=[k].i; j++; } k=1; i++; } returnOK;}statusinitmatrix(matrix&M){ printf("請輸入該矩陣行數(shù)mu和列數(shù)mn和非零元個(gè)數(shù)tu\nmu="); scanf("%d",&; getchar(); printf("\nmn="); scanf("%d",&; getchar(); printf("\ntu="); scanf("%d",&; getchar(); if>maxsize) { printf("非零元個(gè)數(shù)已超過定義的值\n請重新輸入tu="); scanf("%d",&; getchar(); } printf("請輸入非零元和它所在的行數(shù)和列數(shù)(矩陣從先從左到右,再從上到下輸入)\n"); for(inti=1;i<=;i++) { if(i==1) printf("輸入非零元:"); else printf("輸入下一個(gè)非零元:"); scanf("%d",&[i].e); getchar(); printf("輸入該非零元的行數(shù):"); scanf("%d",&[i].i); getchar(); while[i].i>||[i].i<1) { printf("輸入的行數(shù)不合法\n請重新輸入行數(shù):"); scanf("%d",&[i].i); getchar(); } printf("輸入該非零元的列數(shù):"); scanf("%d",&[i].j); getchar(); while[i].j>||[i].j<1) { printf("輸入的列數(shù)不合法\n請重新輸入列數(shù):"); scanf("%d",&[i].j); getchar(); } } returnOK;}statusfasttrans(matrixM,matrix&T){ =; =; =; int*num,*pose; num=(int*)malloc*sizeof(int)); pose=(int*)malloc*sizeof(int)); *(pose)=1; inti=1; for(;i<=;i++) *(num+i-1)=0; for(i=1;i<=;i++) { *(num+[i].j-1)=*(num+[i].j-1)+1; } for(i=2;i<=;i++) { *(pose+i-1)=*(pose+i-2)+*(num+i-2); } for(i=1;i<=;i++) { [*(pose+[i].j-1)].i=[i].j; [*(pose+[i].j-1)].j=[i].i; [*(pose+[i].j-1)].e=[i].e; *(pose+[i].j-1)=*(pose+[i].j-1)+1; } returnOK;}main(){ matrixM,T; charc; while(1) { printf("1:初始化矩陣\n2:顯示矩陣\n3:普通轉(zhuǎn)置\n4:快速轉(zhuǎn)置\n"); scanf("%c",&c); getchar(); switch(c) { case'1': if(initmatrix(M)==OK) printf("初始化成功\n"); break; case'2': showmatrix(M); break; case'3': trans(M,T); printf("轉(zhuǎn)置后矩陣為:\n"); showmatrix(T

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論