⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsmatrix.cpp

📁 自己写的矩阵压缩算法的c语言描述
💻 CPP
字号:
// 这是使用应用程序向导生成的 VC++ 
// 应用程序项目的主项目文件。

#include "stdafx.h"

#using <mscorlib.dll>

using namespace System;

#define MAXSIZE 30
#define OK 1
#define FALSE 0
#define ERROR 0
#define TRUE 1
typedef int ElemType;
typedef ElemType Status;

typedef struct 
{
	int i,j;
	ElemType e;
}Triple;

typedef struct 
{
	Triple data[MAXSIZE+1];
	int mu,nu,tu;
}TSMatrix;

Status Input(TSMatrix &a) //输入
{
	int i;
	printf("输入稀疏矩阵行值,列值,最大非零元个数:");
	scanf("%d%d%d",&a.mu,&a.nu,&a.tu);
	for(i=1;i<=a.tu;i++)
	{
		printf("输入行坐标,列坐标,非零元");
		scanf("%d%d%d",&a.data[i].i,&a.data[i].j,&a.data[i].e);
	}
	return OK;
}

Status trans(TSMatrix a,TSMatrix &b) //转置
{
	b.mu = a.nu;
	b.nu = a.mu;
	b.tu = a.tu;
	if(b.tu)
	{
		int q =1;
		for(int col =1 ;col<=a.nu;++col)
			for(int p=1;p<=a.tu;++p)
				if(a.data[p].j == col)
				{
					b.data[q].i = a.data[p].j;
					b.data[q].j = a.data[p].i;
					b.data[q].e = a.data[p].e;
					++q;
				}
	}
	return OK;
}

void Print(TSMatrix x)
{
	int i,j,k,flag;
	for(i=1;i<=x.mu;i++)
	{
		for(j=1;j<=x.nu;j++)
		{
			flag=0;
			for(k=1;k<=x.tu;k++)
			{
					if(((x.data[k].i)==i)&&((x.data[k].j)==j))
					{
						flag=1;
						printf("%d",x.data[k].e);
					}

			}

			if(flag==0)printf("0");

		}

		printf("\n");

	}

}
int _tmain()
{
    TSMatrix a,b;
	Input(a);
	trans(a,b);
	printf("原矩阵为:\n");
	Print(a);
	printf("转置矩阵为:\n");
	Print(b);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -