数据结构之---C语言实现稀疏矩阵

//稀疏矩阵三元组顺序表存储表示
//杨鑫
#include 
#include 
#define MAXSIZE 100 
typedef int ElemType;
typedef struct
{
	int i,j;			// 行下标,列下标 
	ElemType e; 		// 非零元素值 
}Triple;

typedef struct
{
	Triple data[MAXSIZE+1]; 	// 非零元三元组表,data[0]未用 
	int mu,nu,tu;				// 矩阵的行数、列数和非零元个数 
}TSMatrix;


// 创建稀疏矩阵M
int CreateSMatrix(TSMatrix *M)
{
	int i,m,n;
	ElemType e;
	int k;
	
	printf("请输入矩阵的行数, 列数, 非零元素个数:(以逗号隔开)\n");
	scanf("%d,%d,%d", &(*M).mu, &(*M).nu, &(*M).tu);
	(*M).data[0].i=0;
	for(i = 1; i <= (*M).tu; i++)
	{
		do
		{
			printf("请按行序输入第 %d 个非零元素的行( 1 ~ %d )," "列 ( 1 ~ %d ),元素值:(以逗号隔开)\n", i , (*M).mu, (*M).nu);
			scanf("%d,%d,%d", &m, &n, &e);
			k=0;
			if(m < 1 || m > (*M).mu || n < 1 || n > (*M).nu) 
				k=1;
			if(m < (*M).data[i-1].i || m == (*M).data[i-1].i && n <= (*M).data[i-1].j)  
				k=1;
		}while(k);
		(*M).data[i].i = m;	//行下标
		(*M).data[i].j = n;	//列下标
		(*M).data[i].e

你可能感兴趣的:(C,&&,C++,算法)