📄 sparse1.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 + -