數(shù)據(jù)結(jié)構(gòu)- 矩陣_第1頁
數(shù)據(jù)結(jié)構(gòu)- 矩陣_第2頁
數(shù)據(jù)結(jié)構(gòu)- 矩陣_第3頁
數(shù)據(jù)結(jié)構(gòu)- 矩陣_第4頁
數(shù)據(jù)結(jié)構(gòu)- 矩陣_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件學(xué)院

上機(jī)實驗報告

課程名稱:數(shù)據(jù)結(jié)構(gòu)__________________________

實驗項目:矩陣

實驗室:耘慧420姓名:

_______________學(xué)號_______________

專業(yè)班級:實驗時間:2022.11.24

實驗成績評閱教師

一、實驗?zāi)康募耙?/p>

1.掌握稀疏矩陣壓縮存儲方法(三元組順序表存儲)。

2.完成壓縮存儲下矩陣計算(矩陣轉(zhuǎn)置)。

二、犧

驗證性

三、實驗學(xué)時

2學(xué)時

四、實驗環(huán)境

C與C++程序設(shè)計學(xué)習(xí)與實驗系統(tǒng)

五'實驗內(nèi)容及步驟

實驗內(nèi)容:

1.實現(xiàn)矩陣壓縮存儲。(靜態(tài)數(shù)組壓縮存儲或者直接輸入矩陣非0元均

可)

2.實現(xiàn)矩陣轉(zhuǎn)置算法。

3.實現(xiàn)矩陣快速轉(zhuǎn)置。

實驗步驟:

1.實現(xiàn)矩陣壓縮存儲。(靜態(tài)數(shù)組壓縮存儲或者直接輸入矩陣非0元均可)

2.實現(xiàn)矩陣轉(zhuǎn)置算法TransposeSMatrix(TSMatrixM,TSMatrix&T)。

3.實現(xiàn)矩陣快速轉(zhuǎn)置FastTransposeSMatrix(TSMatrixM,TSMatrix&T)。

4.主函數(shù)中創(chuàng)建矩陣M,將M調(diào)用轉(zhuǎn)置算法轉(zhuǎn)置成矩陣N,調(diào)用快速轉(zhuǎn)置算法轉(zhuǎn)

~~化成矩陣T。

六、實驗數(shù)據(jù)及結(jié)果分析

七、總結(jié)

了解了矩陣的一些知識,懂得了矩陣的一些算法。并且在實際上機(jī)中,學(xué)會了矩陣

的程序的編寫方法。

附錄源程序清單插入;

#include<stdio.h>

#include"malloc.h"

#include<conio.h>

#include<stdlib.h>

#defineOK1

#defineERROR0

#defineMAXSIZE12500

#defineMAXRC1000

typedefintElemType;

typedefintStatus;

typedefstruct{

inti,j;

ElemTypee;

JTriple;

typedefstruct{

Tripledata[MAXSIZE+1];

intrpos[MAXRC+1];

intmu,tu,nu;

JRLSMatrix;

StatusTransposeSMatrix(RLSMatrixM,RLSMatrix&T){

intq=1,col=0,p=0;

T.mu=M.nu;

T.nu=M.mu;

T.tu=M.tu;

if(T.tu){

q=i;

for(col=1;col<=M.nu;++col)

for(p=1;p<=M.tu;++p)

if(M.data[p].j==col){

T.data[q].i=M.data[p].j;

T.data[q].j=M.data[p].i;

T.data[q].e=M.data[p].e;++q;

})

return0;

StatusFastTransposeSMtrix(RLSMatrixM,RLSMatrix&T){

intcol=0,t=0,p=0,q=0;

ElemTypenum[100],cpot[100];

T.mu=M.nu;

T.nu=M.mu;

T.tu=M.tu;

if(T.tu){

for(col=1;col<=M.nu;++col)num[col]=0;

for(t=1;t<=M.tu;++t)++num[M.data[t].j];

cpot[1>1;

for(col=2;col<=M.nu;++col)cpot[col]=cpot[col-1]+num[col-1];

for(p=1;p<=M.tu;++p){

col=M.data[p].j;q=cpot[col];

T.data[q].i=M.data[p].j;

T.data[q].j=M.data[p].i;

T.data[q].e=M.data[p].e;

++cpot[col];

})

returnOK;

)

StatusCreateSMatrix(RLSMatrix*M){

intk,m,n,i;

ElemTypee;

printf("請輸入行列非零個數(shù))

scanf_s("%d",&(*M).mu);

scanf_s("%d",&(*M).nu);

scanf_s("%d",&(*M).tu);

(*M).data[O].i=O;

for(i=1;i<=(*M).tu;i++){

do{

printf("請輸入元素行列元素值");

scanf_s("%d",&m);

scanf_s("%d",&n);

scanf_s("%d",&e);

k=0;

if(m<1||m>(*M).mu||n<1||n>(*M).nu)

k=1;

if(m<=(*M).data[i-1].i&&n<=(*M).data[i-1].j)

k=1;

}while(k);

(*M).data[i].i=m;

(*M).data[i].j=n;

(*M).data[i].e=e;

)

returnOK;

voidprintfSMatrix(RLSMatrix&M){

inti;

printf_s("%4d%4d%8d\n",M.mu,M.nu,M.tu);

for(i=1;i<=M.tu;i++)

printf_s("%4d%4d%8d\n",M.data[i].i,M.data[i].j,M.data[i].e);

intmain(void)

RLSMatr

溫馨提示

  • 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

提交評論