建立三元组表示的稀疏矩阵

#include<iostream>
using namespace std;
#define maxsize 100
typedef int elemtype;

三元组结构体建立

typedef struct
{
	int row,col;// 行 ,列 
	elemtype value;// 值 
}triple;

稀疏矩阵三元组表示

typedef struct
{
	int rows,cols,terms;//表头存放总行数,列数,非零元素个数 
	triple *data;
}sparsematrix;

稀疏矩阵三元组表示初始化

void initsparsematrix(sparsematrix &sm,int rw,int cl)
{
	sm.rows=rw;
	sm.cols=cl;
	sm.terms=0;
	sm.data=new triple[maxsize];//三元组表 
};

创建三元组表示的矩阵

void creatsparsematrix(sparsematrix &A)
{
	int i;
	cin>>A.terms;
	for(i=0;i<A.terms;i++)
	{
		cin>>A.data[i].row>>A.data[i].col>>A.data[i].value;
	}
}

输出三元组表示的矩阵

void printsparsematrix(sparsematrix A)
{
	int i;
	//输出行,列,非零元素个数 
	cout<<A.rows<<" "<<A.cols<<" "<<A.terms<<endl;
	for(i=0;i<A.terms;i++)
	{
		cout<<A.data[i].row<<" "<<A.data[i].col<<" "<<A.data[i].value<<endl;
	}
}

主函数

int main(int argc,const char * argv[])
{
	sparsematrix A;
	int rows,cols;
	cin>>rows;
	cin>>cols;
	initsparsematrix(A,rows,cols);
	creatsparsematrix(A);
	printsparsematrix(A);
	return 0;
}

运行结果显示

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值