稀疏数组
稀疏数组就是一个二位数组chessArr有太多的废数据,就可以把有用的数据压缩一下,用一个新的二维数组来表示这些数据,这个新的二位数组以ans来表示
ans有很多的固有属性,就比如ans只有三列,并且在第一行中,第一列是chessArr的行数,第二列是chessArr的列数,第三列是有用数据的个数
其他行,第一列是该数据所在位置的行数,第二列是列数,第三列是具体的数据值
package com.Array;
public class Main {
public static void main(String[] args) {
int chessArr[][] = new int[11][11];
chessArr[1][2] = 1;
chessArr[2][3] = 2;
for (int[] is : chessArr) {
for(int data : is) {
System.out.print(data);
System.out.print('\t');
}
System.out.println();
}
int sum = 0;
for(int[] arr : chessArr) {
for(int data : arr) {
if(data != 0) {
sum++;
}
}
}
int ans[][] = new int[sum+1][3];
ans[0][0] = 11;
ans[0][1] = 11;
ans[0][2] = sum;
int count = 1;
for(int i = 0;i < 11;i++) {
for(int j = 0;j < 11;j++) {
if(chessArr[i][j] != 0) {
ans[count][0] = i;
ans[count][1] = j;
ans[count][2] = chessArr[i][j];
count++;
}
}
}
System.out.println("========================="+'\n'+"稀疏数组为:");
for(int[] arr : ans) {
for(int data : arr) {
System.out.print(data);
System.out.print('\t');
}
System.out.println();
}
}
}
本周总结
本周主要还是学习数据结构,也开始写项目了,但是,数据结构依然没有学完,像搜索二叉树,还只是停留在表面,并没有深入地去了解过,希望下周在写项目的过程中还能够补充一下数据结构。