




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據結構課程設計:制作一個菜單, 讓用戶選擇讓其進行的任務, 系數矩陣的操作功能有:數據結構課程設計:制作一個菜單, 讓用戶選擇讓其進行的任務, 系數矩陣的操作功能有:輸入1創建兩個是自鏈表對象并初始化。 2檢測兩矩陣能否相加(相減)ADT數據對象mu, nu, tu 分別表示矩陣的行數,數據關系: R=Row,Col操作: 從鍵盤輸入數據 OutPutSMatrix(RLSMatrix p );初始條件: 稀疏矩陣 p 存在 操作結果: 輸出稀疏矩陣 p 操作結果: 創建稀疏矩陣 M OutPutSMatrix_OL(CrossListT);操作結果; 鏈表初始條件操作結果QM初始條件操作結
2、果QMeSMatrix(: 操作結果: M T MultSMatrix ( );初始條件操作結果QM*ADTeSMatrix(: 操作結果: M T MultSMatrix ( );初始條件操作結果QM*ADT#define/* MAXSIZE=100;MAXROW=10; / typedefstruct / typedefstruct / r voidOutPutSMatrix(RLSMatrixp ); / voideSMatrix( ); / voidMultSMatrixtypedefstructOLNode / structOLNode*right,*down;typedefstru
3、ct / OLinkmu,nu,tu;voidCreateSMatrix_OL(CrossList&M); / 創建 void OutPutSMatrix_OL(CrossList T); / 輸出 voidAddSMatrix();/矩陣的加法OLinkmu,nu,tu;voidCreateSMatrix_OL(CrossList&M); / 創建 void OutPutSMatrix_OL(CrossList T); / 輸出 voidAddSMatrix();/矩陣的加法1).輸入矩陣 p: 輸入非零元素的行下標, 列下標和值 零元輸出 0voidMultSMatrix輸入矩陣Q 初始化
4、ctemp/for/5). 初始化各行各列頭指針, 分別為 NULL開辟新的節點用新元素p=6, 鏈表對象, 對M的每一行進行操作, 把N中此行的每個元素取出6, 鏈表對象, 對M的每一行進行操作, 把N中此行的每個元素取出M 此行已經檢查完或者 pb 因該放在 pa 前面 if(NULL = pa | pa- j pb-j)進行列if(NULL!=pa)&pa-je += pb-e;, if(!pa-e)if(NULLpre) / a-i=pa-VC+環境下加以實現的通過實驗表明運行正確。下面介紹一個實驗1. 測試矩陣的轉置數據與輸出結果如下12 3 41 1 21 2 2 1 -2 3 2
5、30-01230-01Pressanykeyto22 2 1 1 2 1 2 2 1 1 -1 2 2 1 Pressanykeytocontinue 22 2 1 1 1 2 2 1 2 2 1 1 1 2 2 1 2 2 2 3 1 1 2 2 2 3 Pressanykeytocontinue 直報錯, 32 3 1 1 -1 3 2 2 2 3 1 1 1 2 -2 2 2 3 0 -Pressanykeyto43 2 41 1 2 1 2 2 -3 2 3 2 32 2 43 2 41 1 2 1 2 2 -3 2 3 2 32 2 3 1 3 2 , , 。, 稀疏矩陣這題很多書上
6、都有, 就借鑒書本和老師的指導, 做出了矩陣的輸入輸出, 加法,減法和乘法, 因為一般按三元組方法輸入和輸出矩陣比較簡單, 所以就用了三元組方法, 陣的乘法也用其三元組方法寫的, 這一部分定義了一個類型的頭文件, 鏈表法做的, 鏈表, 鏈表的頭文件, , ,考慮不到都會影響整個程序的調試, 就通不過, 細細的看每一句同學幫忙, 最終編譯成功, 連接, 運行時也遇到很到問題, 所以一個程序要能夠成功要需要很多步驟, 只有每組可能的數據都測試成功了才能算一個成功的程序,。課程和算法, 對此有了更深刻的了解, 的課件, , 出這個設計來, 給自己了有越感, #define/* MAXSIZE=100
7、;MAXROW=10; / typedefstruct / /*typedefstruct, 出這個設計來, 給自己了有越感, #define/* MAXSIZE=100;MAXROW=10; / typedefstruct / /*typedefstruct typedefstruct / r voidOutPutSMatrix(RLSMatrixp ); / voideSMatrix( ); / voidMultSMatrixtypedefstructOLNode / structOLNode*right,*down;typedefstruct / OLinkmu,nu,tu;voidCr
8、eateSMatrix_OL(CrossList&M); / 創OLinkmu,nu,tu;voidCreateSMatrix_OL(CrossList&M); / 創voidOutPutSMatrix_OL(CrossListTusing#include cin p.mu p.nu p.tu;k = 1;for(;kp.datak.ip.datak.jvoidOutPutSMatrix(RLSMatrixpm,n,k= for(m=0;m p.mu;mfor(n=0;np.nu;nif(p.datak.i-1)=m&(p.datak.j-1)=cout cout/ void cout/ vo
9、id InPutTSMatrix(M); /輸入矩陣col,q,p=1; for(col=0;col=T.tu;colfor(q=1;q=T.tu;qif(M.dataq.j=p +;voidMultSMatrix(RLSMatrixM,N,QInPutTSMatrix(Mif(M.nu != N.mu)Q.muM.mu;Q.nuN.nu;Q.tu0;QctempMAXROW+1if(M.tu*N.tuif(M.nu != N.mu)Q.muM.mu;Q.nuN.nu;Q.tu0;QctempMAXROW+1if(M.tu*N.tuQfor(arow=1;arow = M.mu;arowx1;
10、xN.nu;x +) / ctempx=arowQ.tu1; / if(arowM.mu)tp=else tp=M.tu+ for(p=arowptp;p; / if(browMAXSIZE)0;/returnfalse; Q.dataQ.tu.e = ctempccol; Q.dataQ.tu.i = arow;Q.dataQ.tu.j=voidCreateSMatrix_OL(CrossList&M)/ cin M.mu M.nu M.tu;if(!(M.rhead = (OLink*)malloc(M.mu + 1) * sizeof(OLink) exit(0); if(!(M.che
11、ad = (OLink*)malloc(M.nu+1) * sizeof(OLink) exit(0); for(x0;xM.mu;voidCreateSMatrix_OL(CrossList&M)/ cin M.mu M.nu M.tu;if(!(M.rhead = (OLink*)malloc(M.mu + 1) * sizeof(OLink) exit(0); if(!(M.chead = (OLink*)malloc(M.nu+1) * sizeof(OLink) exit(0); for(x0;xM.mu;x +) / 初始化各行,列頭指針,分別為NULLM.rheadx = NUL
12、L; for(x=0;xxym; OLink p,q;); / p-i=x;p-j=y;p-e = if(M.rheadx=NULL|M.rheadx-jp-right=M.rheadx;M.rheadx=for(q = M.rheadx;(q-right) & (q-right-j right); / 查找節點在p-rightq-rightq-rightp; / if(M.cheady=NULL|M.cheady-ip-down=M.cheady;M.cheady=for(qM.cheady(q-down&q-down-ixqq-down); / p-downq-down;q-downp;
13、/ voidOutPutSMatrix_OL(CrossListT)i= 1;i=T.mu;iOLink p =voidOutPutSMatrix_OL(CrossListT)i= 1;i=T.mu;iOLink p =j=1;j=T.nu;jif(p)&(j=p-coutsetw(3)e;p=p-coutsetw(3)cout CrossListM,N; / prepax= 1;xe=pb-e;p-i=pb-i;p-j=pb-if(NULLpa |pa- jpb-j) / 當M此行已經檢查完或者pb因該放在pa 面if(NULL=pre-right= p-right=pa;pre=p; if
14、(NULL = M.che-j)/ 面if(NULL=pre-right= p-right=pa;pre=p; if(NULL = M.che-j)/ -j=p;p-down= hlp-j = p; if(NULLpa&pa-jpb-j)/ 如果此時的pbpa后面,則取以后的 pa 再來比較pre=pa;pa =pa-)/ pa-e+=pb-if(NULLpre) / a-i=pa-pre-right=pa-right; p = pa; pa = pa-right; -j = p)-j = hlp-jp-down; / 值 free(p);pb=pb-pa=pa-right;pb=pb- fr
15、ee(p);pb=pb-pa=pa-right;pb=pb-CrossListM,N; / prepax= 1;xe=pb-e;p-i=pb-i;p-j=pb-if(NULLpa |pa- jpb-j) / 當M此行已經檢查完或者pb因該放在pa 面if(NULL=-i= pre-right=p-right=pa;pre=p; if(NULL = M.che-j)/ -j=p;p-down=pre-right=p-right=pa;pre=p; if(NULL = M.che-j)/ -j=p;p-down= hlp-j = p; if(NULLpa&pa-jpb-j)/ 如果此時的pbpa后面,則取以后的 pa 再來比較pre=pa;pa =pa-)/ pa-e-=pb-if(N
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 各工種安全協議書
- 收集廢口罩協議書
- 四川煙草考試真題2024
- 終付款結算協議書
- 日本投降簽協議書
- 榮耀俱樂部協議書
- 金礦山合作開采協議書
- 承包做衛生協議書
- 負補充責任和解協議書
- 洗車房承包協議書
- GB 45671-2025建筑防水涂料安全技術規范
- 2025至2030年中國全身螺旋CT掃描系統行業投資前景及策略咨詢研究報告
- 1、人教部編版二年級下冊語文看拼音寫詞語(一類生字和書后詞語)
- 增材制造在虛擬現實輔助機械制造中的應用-洞察闡釋
- 重慶金太陽2025屆高三5月聯考英語及答案
- 醫院新建門急診醫技綜合樓工程施工組織設計
- 外籍人員雇傭合同(中英文對照)6篇
- 玻璃瓶合同協議
- 《不可或缺的醫療保障:課件中的健康險》
- 財產申報表-被執行人用
- 云南郵政面試題及答案
評論
0/150
提交評論