logo资料库

C++稀疏矩阵的各种基本运算并实现加法乘法.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
C++稀疏矩阵的各种基本运算并实现加法乘法 稀疏矩阵的各种基本运算并实现加法乘法 今天小编就为大家分享一篇关于C++稀疏矩阵的各种基本运算并实现加法乘法,小编觉得内容挺不错的,现在分 享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 代码:代码: #include #include #include using namespace std; #define M 4 #define N 4 #define MaxSize 100 typedef int ElemType; typedef struct { int r; int c; ElemType d;///元素值 } TupNode; ///三元组定义 typedef struct { int rows; int cols; int nums; TupNode data[MaxSize]; } TSMatrix; ///三元组顺序表定义
void CreatMat(TSMatrix &t,ElemType A[M][N]) { t.rows=M; t.cols=N; t.nums=0; for(int i=0; i=t.rows||j>=t.cols) return false; while(kt.data[k].r)k++; while(kt.data[k].c)k++; if(t.data[k].r==i&&t.data[k].c==j) t.data[k].d=x; else { for(k1=t.nums-1; k1>=k; k1--) { t.data[k1+1].r=t.data[k].r; t.data[k1+1].c=t.data[k].c; t.data[k1+1].d=t.data[k].d; } 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) { int k=0; if(i>=t.rows||j>=t.cols) return false; while(kt.data[k].r)k++; while(kt.data[k].c)k++; if(t.data[k].r==i&&t.data[k].c==j) x=t.data[k].d; else x=0; return true; } void DispMat(TSMatrix t) { if(t.nums<=0) return ; printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums); printf("\t-----------------\n"); for(int i=0; i
{ int i=0,j=0,k=0; ElemType v; if(a.rows!=b.rows||a.cols!=b.cols) return false; c.rows=a.rows; c.cols=a.cols; while(ib.data[j].c) { c.data[k].r=b.data[j].r; c.data[k].c=b.data[j].c; c.data[k].d=b.data[j].d; k++; j++; } else { v=a.data[i].d+b.data[j].d; if(v!=0) { c.data[k].r=a.data[i].r; c.data[k].c=a.data[i].c; c.data[k].d=v; k++; } i++; j++; } } else if(a.data[i].r
for(k=0; k
分享到:
收藏