問題及**:
/*2015,煙台大學計算機與控制工程學院
*完成日期:11月1日
*問題描述:(1)建立稀疏矩陣三元組表示的演算法庫,包括:
① 頭文tup.h,定義資料型別,宣告函式;
② 原始檔tup.cpp,實現稀疏矩陣三元組表示的基本運算,主要演算法包括:
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);//矩陣轉置
③ 設計main函式,測試上面實現的演算法
*/
(1)標頭檔案
#ifndef tup_h_included
#define tup_h_included
#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
(2)源程式:
#include "stdio.h"
#include "malloc.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++;
}return true; //成功時返回true
}bool assign(tsmatrix t,elemtype &x,int i,int j) //將指定位置的元素值賦給變數
void dispmat(tsmatrix t) //輸出三元組
執行結果:
三元組表示稀疏矩陣並相加
要求稀疏矩陣用三元組結構儲存,實現矩陣a b c,並採用矩陣形式顯示結果。定義兩個結構體,triple結構體用來存放每乙個非零元素的資訊 行標,列標,數值 tripledata用來存放兩個三元組矩陣的資訊 行數,列數,非零元素的個數 每乙個三元組結構都需要呼叫這兩個結構體,兩個結構體共同組成乙個稀疏...
稀疏矩陣三元組表示法的倒置
稀疏矩陣的概念及三元組表示法 如果乙個矩陣中的很多元素的值為零,即零元素的個數遠遠大於非零元素的個數時,稱該矩陣為稀疏矩陣。由於矩陣中零元素過多,若用一般方法對稀疏矩陣進行儲存會造成空間的大大浪費,因此,我們在儲存稀疏矩陣的時候,只需要對非零元素進行儲存。三元組表示法實際上就是乙個二維陣列,即將稀疏...
稀疏矩陣 三元組表示的矩陣相加減
設有採用三元組順序表儲存的兩個稀疏矩陣m和n,試著編寫乙個演算法,實現m和n相乘 1.標頭檔案 triseqmatrix.h 該資料夾中包含著三元稀疏矩陣的建立 初始化 轉置 銷毀等操作 pragma once include include define maxsize 200 typedef s...