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

📄 sparse1.java

📁 三元组表的方式实现两个矩阵的加法运算
💻 JAVA
字号:
/*  定义一个三元组表及其一些相关的方法
	  */
public class Sparse1 extends SparseNode
{   
	//用一个三元表的数组记录稀疏矩阵
	protected SparseNode table[]; 
	
	//创建一个矩阵的三元组表形式,并同时输出该矩阵
	public Sparse1(int mat[][])
	  {
		  int n=mat.length;
		  int m=mat[0].length;   // 本程序用的是第二维维数相等的矩形矩阵
		  table=new SparseNode[n*m];  //最大可能地预分配好三元组表的内存空间
		  //将矩阵输出并同时用三元组表的形式记录
		
		  int i,j,k=0; //中间控制变量
		  for (i=0;i<mat.length ;i++ )
		  {
			   for (j=0;j<mat[i].length ;j++ )
			   {   
				   System.out.print(" "+mat[i][j]);
				   //******if (mat[i][j]!=0)
				  //****** {    
					   table[k]=new SparseNode(i+1,j+1,mat[i][j]); //java中数组的第一个元素的下标是0,所以i,j要加1
					   k++;
				  //****** }
			   }
			   System.out.println();
		  }
	 }
	 public Sparse1(int x)
	  {  
	  	 
		  table=new SparseNode[x]; //初始化,创建一个长度为x的三元组表
		  //******用以初始化
		  for(int i=0; i< x; i++)
		  {
		  	 table[i] = new SparseNode();
		  	}
		  	
		 
	  }
	  
	 
	  //将一个三元组表所代表的矩阵输出
	 public void output(int r ,int c)
	  {   
	  	//******矩阵的行要多加1
		   for (int i=0;i<r+1 ;i++ )
		     {  
			    for (int j=0;j<c ;j++ )
			    {  
			    
			    	
					for (int k=0;k<table.length ;k++ )
			         {      
						  if (table[k].row==i && table[k].column==(j+1))
						  {     System.out.print(" "+table[k].data);
						  }
						  //******不用打出0
						  else System.out.print("");
			         }
			        
			    }
			     
				System.out.println();
		     }
	  }
}

⌨️ 快捷键说明

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