有时矩阵存放数据过于稀少,这时就可以利用稀疏矩阵进行存储,如将矩阵转化为n行3列的矩阵进行存放,存放数据的行、列、数值等信息。
核心code:
import java.util.Scanner;
public class sparsearray {
public sparsearray() {
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean[][] array = new boolean[11][11];
int ad = 0;
int count;
for(count = 0; scanner.hasNext(); ++ad) {
int row = scanner.nextInt();
int column = scanner.nextInt();
if (row == 0 && column == 0) {
break;
}
array[row][column] = true;
}
boolean[][] var7 = array;
int i = array.length;
int j;
for(j = 0; j < i; ++j) {
boolean[] rows = var7[j];
boolean[] var11 = rows;
int var12 = rows.length;
for(int var13 = 0; var13 < var12; ++var13) {
boolean chess = var11[var13];
System.out.printf("%b\t", chess);
}
System.out.println();
}
int[][] sparsearray = new int[ad][3];
for(i = 0; i <= 10; ++i) {
for(j = 0; j <= 10; ++j) {
if (array[i][j]) {
sparsearray[count][0] = i;
sparsearray[count][1] = j;
sparsearray[count][2] = 1;
++count;
}
}
}
int[][] var16 = sparsearray;
j = sparsearray.length;
for(int var17 = 0; var17 < j; ++var17) {
int[] rows = var16[var17];
System.out.printf("%d %d %d\t", rows[0], rows[1], rows[2]);
System.out.println();
}
}
}