行邏輯鏈結的三元組順序表實現,加減乘和轉置運算,調的好累,這兩天少了點勁頭了,堅持住,
試了好幾組資料應該沒問題了,但也可能還有漏洞```
#include
#include
#include
using
namespace std;
#define ok 1
#define error 0
#define overflow -2
typedef
int status;
typedef
struct
triple;
typedef
struct
rlsmatrix;
status creatematrix(rlsmatrix &a) //建立
while(a.data[k].i>a.mu||a.data[k].j>a.nu);
while(curowa.rpos[curow++]=k; //如果當前行元素都為0,則指向下一行第乙個非0元素
}while(curow<=a.mu)
a.rpos[curow++]=k;
return ok;
} /*
status transposesmatrix(rlsmatrix a,rlsmatrix &b) //轉置
while(curow<=b.mu)
b.rpos[curow++]=k;
return ok;}*/
status fasttransposesmatrix(rlsmatrix a,rlsmatrix &b) //快速轉置
free(num);free(cpot);
}return ok;}
status addsmatrix(rlsmatrix m,rlsmatrix n,rlsmatrix &q) //加法
else
if(m.data[p].j>n.data[q].j)
else
}while(pq.data[q.tu].j=m.data[p].j;
q.data[q.tu++].e=m.data[p++].e;
}while (q
q.data[q.tu].i=n.data[q].i;
q.data[q.tu].j=n.data[q].j;
q.data[q.tu++].e=n.data[q++].e;}
}q.rpos[q.mu]=q.tu;
return ok;
}status subsmatrix(rlsmatrix m,rlsmatrix n,rlsmatrix &q) //減法
else
if(m.data[p].j>n.data[q].j)
else
}while(pq.data[q.tu].j=m.data[p].j;
q.data[q.tu++].e=m.data[p++].e;
}while (q
q.data[q.tu].i=n.data[q].i;
q.data[q.tu].j=n.data[q].j;
q.data[q.tu++].e=-n.data[q++].e;}
}q.rpos[q.mu]=q.tu;
return ok;
}status multsmatrix(rlsmatrix m,rlsmatrix n,rlsmatrix &q) //乘法
}
for(ccol=0;ccolif(ctemp[ccol])
}q.tu++;
q.rpos[q.mu]=q.tu;
} return ok;
}/*
void printsmatrix(rlsmatrix a) //輸出rpos的值,用於測試
else cout<<"0"
<<" ";
coutint main()
稀疏矩陣加法運算 線性代數 矩陣基本運算
在本文中,我們將介紹矩陣的大部分基本運算,依次是矩陣的加減法 矩陣的標量乘法 矩陣與矩陣的乘法 求轉置矩陣,以及深入了解矩陣的行列式運算。本文將不會涉及逆矩陣 矩陣的秩等概念,將來再 它們。矩陣的加法與減法運算將接收兩個矩陣作為輸入,並輸出乙個新的矩陣。矩陣的加法和減法都是在分量級別上進行的,因此要...
7 稀疏矩陣的乘法運算
資料壓縮是提高傳輸 儲存效率一種技術。教材第5章介紹了兩種簡單的壓縮儲存方法。本實驗要求實現兩個稀疏矩陣相乘積的演算法。其中稀疏矩陣非零元素數量小於100.輸入 第1個 稀疏矩陣的行數 列數 非零元個數 三個數都大於0 三元組 第2個 稀疏矩陣的行數 列數 非零元個數 三個數都大於0 三元組 以行為...
稀疏矩陣儲存 轉置 乘法運算
使用順序儲存結構儲存稀疏矩陣,並實現轉置和乘法運算。include stdio.h include stdlib.h include string.h 順序結構的稀疏矩陣 轉置 乘法 define xishu max 100 define xishu increment 100 typedef st...