int Array[][]=new int[11][11];
Array[2][3]=2;
Array[3][4]=5;
Array[3][5]=6;
for (int[] row:Array)
{
for (int data:row)
{
System.out.printf("%d\t", data);
}
System.out.println();
}
//统计有效数据的个数
int sum=0;
for (int i = 0; i <11 ; i++) {
for (int j = 0; j <11 ; j++) {
if (Array[i][j]!=0)
{
sum++;
}
}
}
//创建稀疏数组
int[][] sparseArray=new int[sum+1][3];
sparseArray[0][0]=11;
sparseArray[0][1]=11;
sparseArray[0][2]=sum;
int count=0;
for (int i = 0; i <11 ; i++) {
for (int j = 0; j <11 ; j++) {
if (Array[i][j]!=0)
{
count++;
sparseArray[count][0]=i;
sparseArray[count][1]=j;
sparseArray[count][2]=Array[i][j];
}
}
}
//打印稀疏数组
for (int[] row:sparseArray)
{
for (int data:row)
{
System.out.printf("%d\t",data);
}
System.out.println();
}
//还原稀疏数组
int Array2[][]=new int[sparseArray[0][0]][sparseArray[0][1]];
for (int i = 1; i <sparseArray.length ; i++) {
Array2[sparseArray[i][0]][sparseArray[i][1]]=sparseArray[i][2];
}
for (int[] row:Array2)
{
for (int data:row)
{
System.out.printf("%d\t",data);
}
System.out.println();
}
Java数据结构-稀疏数组
最新推荐文章于 2024-08-24 16:03:25 发布