#include<iostream>
using namespace std;
#define ok 1
#define error 0
typedef int Status;
template<class T>
class Triple{
template<class T> friend class CrossSMatrix;
private:
int i,j; //i,j表示该非零元的行和列下标
T e; //非零元素的值
Triple<T> *right,*down; //该非零元所在行表和列表的后继链域
};
//-------------稀疏矩阵的基本操作的函数原型说明---------------
template<class T>
class CrossSMatrix{
public:
//TSMatrix();
Status CreateSMatrix(); //创建稀疏矩阵M
Status DesSMatrix(); //销毁稀疏矩阵
Status PrintSMatrix(); //输出稀疏矩阵
private:
Triple<T> *rhead,*chead;//行和列链表头指针向量基址
int rpos[MAXRC+1];
int row,col,num; //矩阵的行数、列数和非零元个数
};
//--------------------稀疏矩阵的基本操作的函数实现---------------------
template<class T>
Status CrossSMatrix<T>::CreateSMatrix()
{
int count=1;//非零元素计数器
cout<<"输入矩阵的行数row= ";cin>>row;
cout<<"\n"<<"输入矩阵的列数col= ";cin>>col;
cout<<"\n"<<"输入矩阵非零元个数num= ";cin>>num;cout<<endl;
if(num>(row*col)
稀疏矩阵的十字链表存储
最新推荐文章于 2025-06-11 13:13:37 发布