代码:
#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(k t.data[k].r)k++; while(k t.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(k t.data[k].r)k++; while(k t.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 b.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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接