/*
* 檔名稱: main.cpp,tup.cpp,tup.h
* 完成日期:2023年10月31日
* 版本號:codeblocks
* * 問題描述: 稀疏矩陣的三元組表示相關的演算法庫採用程式的多檔案組織形式
* 輸入描述: 無
* 程式輸出: 見執行結果
*/ #ifndef tup_h_included
#define tup_h_included
#include#define m 6
#define n 7
#define maxsize 100
typedef int elemtype;
typedef struct
tupnode;
typedef struct
tsmatrix;
void creatmat(tsmatrix &t,elemtype a[m][n]); //從乙個二維稀疏矩陣建立其三元組表示
bool value(tsmatrix &t,elemtype x,int i,int j); //三元組元素賦值
bool assign(tsmatrix t,elemtype &x,int i,int j); //將指定位置的元素值賦給變數
void dispmat(tsmatrix t);//輸出三元組
void trantat(tsmatrix t,tsmatrix &tb);//矩陣轉置
#endif // tup_h_included
#include"tup.h"
void creatmat(tsmatrix &t,elemtype a[m][n])
while(kt.data[k].c)
if(t.data[k].r==i&&t.data[k].c==j)
else
t.data[k].r=i;
t.data[k].c=j;
t.data[k].d=x;
t.nums++;
}return true;
}bool assign(tsmatrix t,elemtype &x,int i,int j)
while(kt.data[k].c)
if(t.data[k].r==i&&t.data[k].c==j)
x=t.data[k].d;
else
x=0;
return false;
}void dispmat(tsmatrix t)
printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums);
printf("\t------------------\n");
for (i=0; ix=%d\n",x);
else //呼叫時返回false
printf("assign(t,x,2,5)=>引數錯誤\n");
value(t,y,2,5);
printf("執行value(t,10,2,5)\n");
if (assign(t,x,2,5)==true) //呼叫時返回true
printf("assign(t,x,2,5)=>x=%d\n",x);
else //呼叫時返回false
printf("assign(t,x,2,5)=>引數錯誤\n");
printf("b:\n");
dispmat(t);
trantat(t,tb);
printf("矩陣轉置tb:\n");
dispmat(tb);
return 0;
}
執行結果:
知識點總結:
稀疏矩陣的三元組表示相關的演算法庫採用程式的多檔案組織形式
學習心得:
掌握基礎知識是關鍵
第九周專案3 (1)稀疏矩陣的三元組表示
問題及 1 tup。cpp include stdio.h include tup.h void creatmat tsmatrix t,elemtype a m n 從乙個二維稀疏矩陣建立其三元組表示 t.data k r i t.data k c j t.data k d x t.nums re...
第九周專案3 稀疏矩陣的三元組表示的應用
檔名稱 第9周專案3 稀疏矩陣的三元組表示的應用 3.2 cpp 作 者 高露 完成日期 2015年11月6日 版 本 號 v1.0 問題描述 採用三元組儲存稀疏矩陣,設計兩個稀疏矩陣相加的運算演算法 輸入描述 兩個稀疏矩陣 程式輸出 相加運算後的結果。include define n 4 defi...
第九周 三元組儲存稀疏矩陣
作 者 孫子策 完成日期 2016.10.27 問題描述 提示1 兩個行數 列數相同的矩陣可以相加 提示2 充分利用已經建立好的演算法庫解決問題 標頭檔案 ifndef tup h included define tup h included define m 6 define n 7 define...