稀疏数组

第一次写数据结构代码


import
java.util.Scanner; public class test { public static void main(String[] args) { //初始化棋盘 Scanner sc=new Scanner(System.in); System.out.println("输入行和列:"); int a=sc.nextInt(); int b=sc.nextInt(); int[][] aArr=new int[a][b]; for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { aArr[i][j]=0; } } //棋盘中不同的值的赋值(此处可改为手动输入) aArr[2][3]=1; aArr[3][4]=2; int sun=0; //输出 System.out.println("棋盘为:"); for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { System.out.print(aArr[i][j]+" "); if (aArr[i][j]!=0){ sun++; } } System.out.println(); } //初始化稀疏数组 int[][] bArr=new int[sun+1][3]; bArr[0][0]=a; bArr[0][1]=b; bArr[0][2]=sun; int con=0; //遍历添加稀疏数组 for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { if (aArr[i][j]!=0){ con++; bArr[con][0]=i; bArr[con][1]=j; bArr[con][2]=aArr[i][j]; } } } //输出稀疏数组 System.out.println("存档后的稀疏数组为:"); for (int i = 0; i < bArr.length; i++) { System.out.println(bArr[i][0]+" "+bArr[i][1]+" "+bArr[i][2]); } //转换回二维数组 int[][] cArr=new int[bArr[0][0]][bArr[0][1]]; for (int i = 0; i < bArr[0][0]; i++) { for (int j = 0; j < bArr[0][1]; j++) { cArr[i][j]=0; } } //读取稀疏数组 int sun1=bArr[0][2]; for (int i = 0; i < sun1; i++) { cArr[bArr[i+1][0]][bArr[i+1][1]]=bArr[i+1][2]; } //输出 System.out.println("读取后的棋盘为:"); for (int i = 0; i < bArr[0][0]; i++) { for (int j = 0; j < bArr[0][1]; j++) { System.out.print(cArr[i][j]+" "); } System.out.println(); } } }

 

posted @ 2021-11-05 12:41  unIlIl  阅读(19)  评论(0)    收藏  举报