稀疏矩陣的壓縮存儲_第1頁
稀疏矩陣的壓縮存儲_第2頁
稀疏矩陣的壓縮存儲_第3頁
稀疏矩陣的壓縮存儲_第4頁
稀疏矩陣的壓縮存儲_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、稀疏矩陣的壓縮存儲(1) 稀疏矩陣的定義:在矩陣中,多數(shù)的元素為0,則稱此矩陣為稀疏矩陣三元組類:/定義三元組public class Triple int row;/行號int col;/列號double val;/元素值/對各項數(shù)據(jù)進行初始化public Triple(int row,int col,double val) this.row=row;this.col=col;this.val=val;public String toString() /輸出三元組項return "("+row+","+col+","+val+&qu

2、ot;)"(2)用三元組順序表實現(xiàn)稀疏矩陣:(3)其中包括了稀疏矩陣的轉(zhuǎn)置: 注:(2)(3)放到了一塊import/稀疏矩陣的定義public class SparseMatrix private int rows;/行private int cols;/列private ArrayList<Triple> terms;/保存三元組/創(chuàng)建public SparseMatrix(int rows,int cols,ArrayList<Triple> t) / TODO Auto-generated constructor stubthis.rows=rows;

3、this.cols=cols;terms=t;/輸出public void output() System.out.println("稀疏矩陣的總行數(shù)和總列數(shù)分別為:"+rows+","+cols);for(int i=0;i<terms.size();i+) System.out.print(terms.get(i);/轉(zhuǎn)置 返回結果為SparseMatrix型public SparseMatrix transpose() /保存轉(zhuǎn)置后的結果SparseMatrix t=new SparseMatrix(cols,rows,new ArrayLi

4、st<Triple>();if(terms.size()=0)/空矩陣return t;for(int k=1;k<=cols;k+) /列數(shù)作為最外層循環(huán)的終止條件 每次掃描原稀疏矩陣的一列for(int j=0;j<terms.size();j+) /都取出來了Triple x=(Triple)terms.get(j);if(x.col=k)/如果x是第k列的元素t.terms.add(new Triple(k,x.row,x.val);/行列互換 值不變/if/forreturn t;測試稀疏矩陣的轉(zhuǎn)置:/稀疏矩陣應用->轉(zhuǎn)置importpublic cla

5、ss Matrix public static void main(String args) ArrayList<Triple> list=new ArrayList<Triple>();/輔助SparseMatrix的構造器list.add(new Triple(1,3,3);list.add(new Triple(1,4,6);list.add(new Triple(2,3,-9);list.add(new Triple(3,1,8);list.add(new Triple(3,3,4);list.add(new Triple(3,5,6);list.add(new

6、 Triple(4,2,8);list.add(new Triple(5,3,-3);/稀疏矩陣行列數(shù)分別為6,5SparseMatrix s=new SparseMatrix(6,5,list);System.out.println("未轉(zhuǎn)置之前的矩陣為(只輸出非零元素):");s.output();System.out.println();System.out.println("轉(zhuǎn)置之后的矩陣為(只輸出非零元素):");SparseMatrix ss=s.transpose();ss.output();上述測試稀疏矩陣的轉(zhuǎn)置程序中定義的矩陣的向量cp

7、ot的值以及num的值:col12345numcol11411cpotcol12378(4)1結構定義:ADT SparseMatrix 數(shù)據(jù)對象:D=aij | i=1,2,m; j=1,2,.,n;aijElemset, m和n分別稱為矩陣的行數(shù)和列數(shù)       數(shù)據(jù)關系:R=Row,Col         Row=<ai,j , ai,j+1> | 1<=i<=m, 1<=j<=n-1 Col= <ai,j

8、 , ai+1,j> | 1<=i<=m-1, 1<=j<=n 基本操作: SparseMatrix(int rows,int cols,ArrayList<Triple> t) 操作結果:創(chuàng)建稀疏矩陣 output() 初始條件:稀疏矩陣已存在 操作結果:打印稀疏矩陣 transpose() 初始條件:稀疏矩陣已存在 操作結果:返回稀疏矩陣的轉(zhuǎn)置ADT SparseMatrix 2稀疏矩陣的存儲結構的定義:class SparseMatrix private int rows;/行private int cols;/列private ArrayList<Triple> terms;/保存三元組 三元組Triple:public class Triple int row;/行號int col;/列號double val;/元素值/對各項數(shù)據(jù)進行初始化public Triple(int row,int col,double val) this.row=row;this.col=col;this.val=val;public String toString() /輸出三元組項return "("+row+","+col+","+val+")&q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論