稀疏矩阵 三元组顺序表

#include using namespace std; /*所有的算法都是基于数据结构的,所以必须明确数据结构是如何设计的*/ #define ELEMTYPE int typedef struct { int row; int col; ELEMTYPE item; }ELEM; typedef struct { ELEM *data;//非0元素列表 int mu;//矩阵行数 int nu;//矩阵列数 int tu;//非0元素个数 }TSMatrix; /*根据数据结构中属性,进行算法设计*/ /*为三元组分配内存,并对三元组进行属性设置*/ void initMatrix(TSMatrix* M, int mu, int nu, int tu) { /*参数合法性检查*/ if (mu<1 || nu <1 || tu<1 || tu> mu*nu) { cout<<"输入参数出错"<mu =mu; M->nu =nu; M->tu =tu; M->data = new ELEM[tu];//为非0元素分配内存 } /*销毁三元组,释放内存,并对属性进行设置*/ void destroyMatrix(TSMatrix* M) { delete []M->data; M->mu =0; M->nu =0; M->tu =0; } /*复制三元组,依次把所有数据复制到另一个三元组中*/ TSMatrix * copyMatrix(TSMatrix *M, TSMatrix* T) { initMatrix(T, M->mu, M->nu, M->tu);//对T进行初始化,分配内存并设置属性值 /*复制三元组元素*/ int i=0; for (i=0; i< T->tu; i++) { T->data[i] = M->data[i]; } return T; } /*输出所有元素*/ void display(TSMatrix *M) { /*逐个输出所有元素*/ int i =0; for (i =0; i< M->tu; i++) { cout<data[i].row; cout<<" "<data[i].col; cout<<" "<data[i].item; cout<

你可能感兴趣的:(算法)