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

📄 tsmatrix.cpp

📁 串及矩阵的压缩存储应用,二叉树的构造与遍历,栈的测试和应用,线性表的链存储操作实现 源码加报告
💻 CPP
字号:
#include <iostream>
#include <iomanip>
using namespace std;

#define MAXSIZE      12500
#define OK           1

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

int TransposeSMatrix(TSMatrix M,TSMatrix &T)
{
	T.mu=M.nu;
	T.nu=M.mu;
	T.tu=M.tu;
	if(T.tu)
	{
		int q=1;
		for(int col=1;col<=M.nu;col++)
			for(int p=1;p<=M.tu;p++)
				if(M.data[p].j==col)
				{
					T.data[q].i=M.data[p].j;
					T.data[q].j=M.data[p].i;
					T.data[q].e=M.data[p].e;
					q++;
				}
	}
	return OK;
}

void InputTSMatrix(TSMatrix &M)
{
	int k;
	cout<<"稀疏矩阵的行数和列数:";
	cin>>M.mu>>M.nu;
	cout<<"稀疏矩阵非零元个数:";
	cin>>M.tu;
	cout<<"稀疏矩阵三元组:(行 列 值)"<<endl;
	for(k=1;k<=M.tu;k++)
		cin>>M.data[k].i>>M.data[k].j>>M.data[k].e;
}

void PrintTSMatrix(TSMatrix M)
{
	int i,j,k=1;
	for(i=1;i<=M.mu;i++)
	{
		for(j=1;j<=M.nu;j++)
		{
			if(i==M.data[k].i&&j==M.data[k].j)
			{
				cout<<setiosflags(ios_base::left)<<setw(4)<<M.data[k].e;
				k++;
			}
			else
				cout<<setiosflags(ios_base::left)<<setw(4)<<"0";   //补零
		}
	cout<<endl;
	}
}

void MaxElem(int &i,int &j,TSMatrix M)
{
	int k=1;
	for(int t=k+1;t<=M.tu;t++)
	if(M.data[k].e<M.data[t].e)
		k=t;
	i=M.data[k].i;
	j=M.data[k].j;
}

void MinElem(int &i,int &j,TSMatrix M)
{
	int k=1;
	for(int t=k+1;t<=M.tu;t++)
		if(M.data[k].e>M.data[t].e)
			k=t;
	i=M.data[k].i;
	j=M.data[k].j;
}
void main()
{
	int i,j;
	TSMatrix M,T;
//----测试InputTSMatrix()和PrintTSMatrix()----
  	//InputTSMatrix(M);
  	//PrintTSMatrix(M);

//----测试TransposeSMatrix()----
	//InputTSMatrix(M);
	//cout<<"原矩阵:"<<endl;
	//PrintTSMatrix(M);
	//TransposeSMatrix(M,T);
	//cout<<"转置矩阵:"<<endl;
	//PrintTSMatrix(T);
//----测试MaxElem()和MinElem()----
	InputTSMatrix(M);
	PrintTSMatrix(M);
	MaxElem(i,j,M);
	cout<<"最大元素位置:"<<i<<" "<<j<<endl;
	MinElem(i,j,M);
	cout<<"最小元素位置:"<<i<<" "<<j<<endl;
}

⌨️ 快捷键说明

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