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

📄 链式三元组.cpp

📁 矩阵的一些算法应用
💻 CPP
字号:
#include "iostream.h"
typedef int ElemType;
typedef struct mnode  
{   int row;     //行号
     int col;    //列号
    ElemType  e;  //非零元素值
  struct mnode *next;  //地址指针
}MtrixNode;

MtrixNode *minit(int m,int n,int t)  //m行n列的稀疏矩阵
  {  MtrixNode *p;
 p=new MtrixNode;
 p->e=t;
 p->row=m; p->col=n;
 p->next=0;
 return p;
}
void mcreate(MtrixNode *m)
{MtrixNode *p,*q;
cout<<m->row<<"行 "<< m->col<<"列  "<<m->e<<"个非零元素"<<endl;
cout<<"请按行、列、非零元素顺序输入:"<<endl;
q=m;
for(int i=0;i<m->e;i++)
{p=new MtrixNode;
 cin>>p->row>>p->col>>p->e;
 q->next=p;
 p->next=0;
 q=p;
}
}

void mprint(MtrixNode *m)
{
cout<<m->row<<"行 "<< m->col<<"列  "<<m->e<<"个非零元素"<<endl;
MtrixNode *p;
p=m->next;
while(p!=0)
{cout<<p->row<<"  "<<p->col<<"  "<<p->e<<endl; p=p->next;}
cout<<endl;
}

void matrixprint(MtrixNode *m)
{
MtrixNode *p;
p=m->next;
int i,j,flag=0;
for(i=1;i<=m->row;i++)
{    
	for(j=1;j<=m->col;j++)
	{ 
		if(p->row ==i && p->col==j)
		{cout<<p->e<<"  ";	p=p->next; flag=1;}	 
 	   if(!flag) cout<<"0"<<"  ";
		flag=0;
     
	} 
	cout<<endl;  
	
}
  
}

void main()
{
	MtrixNode *M;
	int i,j,k;
	cout<<"请输入稀疏矩阵的行数、列数和非零元素个数:";cin>>i>>j>>k;
	M=minit(i,j,k);
	mcreate(M);
	mprint(M);
	cout<<endl;
	matrixprint(M);
}

⌨️ 快捷键说明

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