/*
*all right reserved.
*檔名稱:test.cpp
*完成日期:2023年11月3日
*版本號:v1.4.6
* *
問題描述:實現矩陣的轉置等問題。
*程式輸入:無。
*程式輸出:矩陣相轉置結果。
*/juzhen.h:
#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
juzhen.cpp:
#include "stdio.h"
#include "juzhen.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) //輸出三元組
, ,,,
,};creatmat(t,a);
printf("b:\n");
dispmat(t);
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");
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");
總結:利用陣列對矩陣進行轉置。
稀疏矩陣 三元組表示的矩陣相加減
設有採用三元組順序表儲存的兩個稀疏矩陣m和n,試著編寫乙個演算法,實現m和n相乘 1.標頭檔案 triseqmatrix.h 該資料夾中包含著三元稀疏矩陣的建立 初始化 轉置 銷毀等操作 pragma once include include define maxsize 200 typedef s...
稀疏矩陣三元組表示法的倒置
稀疏矩陣的概念及三元組表示法 如果乙個矩陣中的很多元素的值為零,即零元素的個數遠遠大於非零元素的個數時,稱該矩陣為稀疏矩陣。由於矩陣中零元素過多,若用一般方法對稀疏矩陣進行儲存會造成空間的大大浪費,因此,我們在儲存稀疏矩陣的時候,只需要對非零元素進行儲存。三元組表示法實際上就是乙個二維陣列,即將稀疏...
三元組表示稀疏矩陣並相加
要求稀疏矩陣用三元組結構儲存,實現矩陣a b c,並採用矩陣形式顯示結果。定義兩個結構體,triple結構體用來存放每乙個非零元素的資訊 行標,列標,數值 tripledata用來存放兩個三元組矩陣的資訊 行數,列數,非零元素的個數 每乙個三元組結構都需要呼叫這兩個結構體,兩個結構體共同組成乙個稀疏...