91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

實現一個能進行稀疏矩陣基本運算的運算器。以“帶行邏輯鏈接信息”的三元組順序表表示稀疏矩陣,實現兩個矩陣相加、相減和相乘的運算。稀疏矩陣的輸入形式采用三元組表示, 而運算結果的矩陣則通常以陣列形式列出。

資源截圖

代碼片段和文件信息

#include?
#include?
#define?MaxSize??100?????????//矩陣中非零元素最多個數
typedef?float?ElemType;

typedef?struct
{
int?r;??????????????????//行號
int?c;??????????????????//列號
ElemType?d;?????????????//元素值
}?TupNode;??????????????????//三元組定義

typedef?struct
{
int?rows;???????????????//行數
int?cols;???????????????//列數
int?nums;???????????????//非零元素個數
TupNode?data[MaxSize];
}?TSMatrix;?????????????????//三元組順序表定義

//初始化
void?InitMat(TSMatrix*?t);
//從一個二維稀疏矩陣創建其三元組表示
void?CreatMat(TSMatrix?*t?ElemType**?A?int?rows?int?cols);??//從一個二維稀疏矩陣創建其三元組表示

//rows行。cols?列?零矩陣
void?CreatMatEx(TSMatrix?*t?int?rows?int?cols);

//三元組元素賦值
int?Value(TSMatrix?*t?ElemType?x?int?i?int?j);??

//將指定位置的元素值賦給變量
int?Assign(TSMatrix?t?ElemType?*x?int?i?int?j);?

//輸出三元組
void?DispMat(TSMatrix?t);

//輸出矩陣形式
void?DispMatrix(TSMatrix?t);

//矩陣轉置
void?TranTat(TSMatrix?t?TSMatrix?*tb);
//加
int?MatAdd(TSMatrix?a?TSMatrix?b?TSMatrix?*c);
//減
int?MatSub(TSMatrix?a?TSMatrix?b?TSMatrix?*c);
//乘
int?MatMul(TSMatrix?a?TSMatrix?b?TSMatrix?*c);

void?CreatMat(TSMatrix?*t?ElemType**?A?int?rows?int?cols)??//從一個二維稀疏矩陣創建其三元組表示
{
int?i?j;
ElemType?aij?=?0;
t->rows?=?rows;
t->cols?=?cols;
t->nums?=?0;
for?(i?=?0;?i? {
for?(j?=?0;?j? {
aij?=?*((ElemType*)A?+?rows?*?i?+?j);
if?(aij?!=?0)?????//只存儲非零元素
{
t->data[t->nums].r?=?i;
t->data[t->nums].c?=?j;
//t->data[t->nums].d?=?A[i][j];
t->data[t->nums].d?=?aij;
t->nums++;
}
}
}
}

void?CreatMatEx(TSMatrix?*t?int?rows?int?cols)
{
int?i?=?0;
t->rows?=?rows;
t->cols?=?cols;
t->nums?=?0;

for?(i?=?0;?i? {
t->data[i].r?=?0;
t->data[i].c?=?0;
t->data[i].d?=?0;
}
}
void?InitMat(TSMatrix*?t)
{
int?i?=?0;
t->cols?=?0;
t->rows?=?0;
t->nums?=?0;

for?(i?=?0;?i? {
t->data[i].r?=?0;
t->data[i].c?=?0;
t->data[i].d?=?0;
}
}

int?Value(TSMatrix?*t?ElemType?x?int?i?int?j)??//三元組元素賦值
{
int?k?=?0?k1;
if?(i?>=?t->rows?||?j?>=?t->cols)
return?0;???????????????//失敗時返回false
while?(knums?&&?i>t->data[k].r)?k++;??????????????????//查找行
while?(knums?&&?i?==?t->data[k].r?&&?j>t->data[k].c)?k++;//查找列
if?(t->data[k].r?==?i?&&?t->data[k].c?==?j?&&?t->nums)???//存在這樣的元素
t->data[k].d?=?x;
else????????????????????????????????????//不存在這樣的元素時插入一個元素
{
for?(k1?=?t->nums?-?1;?k1?>=?k;?k1--)
{
t->data[k1?+?1].r?=?t->data[k1].r;
t->data[k1?+?1].c?=?t->data[k1].c;
t->data[k1?+?1].d?=?t->data[k1].d;
}
t->data[k].r?=?i;
t->data[k].c?=?j;
t->data[k].d?=?x;
t->nums++;
}
return?1;????????????????????????//成功時返回true
}

int?Assign(TSMatrix?t?ElemType?*x?int?i?int?j)??//將指定位置的元素值賦給變量
{
int?k?=?0;
if?(i?>=?t.rows?||?j?>=?t.cols)
return?0;???????????//失敗時返回false
while?(kt.data[k].r)?k++;??????????????????//查找行
while?(k

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????????35??2019-01-04?08:34??三元組相關算法(含設計報告)\a.txt

?????文件?????????34??2019-01-04?08:35??三元組相關算法(含設計報告)\b.txt

?????文件????????104??2019-01-04?03:18??三元組相關算法(含設計報告)\c.txt

?????文件???????9140??2019-01-04?03:08??三元組相關算法(含設計報告)\main.c

?????文件?????217667??2019-01-04?04:07??三元組相關算法(含設計報告)\課程設計報告.docx

?????目錄??????????0??2019-06-14?17:00??三元組相關算法(含設計報告)

-----------?---------??----------?-----??----

???????????????226980????????????????????6


評論

共有 條評論

相關資源