溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

稀疏數組實現11*11圍棋的數據存儲與恢復

發布時間:2020-08-04 05:47:24 來源:網絡 閱讀:363 作者:DanChen1981 欄目:編程語言

代碼如下:

package com.atguigu.sparsearray;

/**
 * @author ChenDan
 * @date 2019/7/20 10:52
 */
public class SparseArray {
    public static void main(String[] args) {
        //創建一個原始的二維數組 11*11
        //0表示沒有棋子,1表示黑子,2表示藍子
        int[][] chessArr1 = new int[11][11];
        chessArr1[1][2] = 1;
        chessArr1[2][3] = 2;
        chessArr1[4][5] = 2;

        System.out.println("原始的二維數組~~");
        for (int[] row : chessArr1) {
            for (int data : row) {
                System.out.printf("%d\t", data);
            }
            System.out.println();
        }

        //將二維數組轉換為稀疏數組
        //先遍歷二維數組得到非0數據的個數
        int sum = 0;
        for (int i = 0; i < chessArr1.length; i++) {
            for (int j = 0; j < chessArr1[i].length; j++) {
                if (chessArr1[i][j] != 0)
                    sum++;

            }
        }
        //創建對應的稀疏數組
        int sparseArr[][] = new int[sum + 1][3];
        //給稀疏數組賦值
        sparseArr[0][0] = 11;
        sparseArr[0][1] = 11;
        sparseArr[0][2] = sum;

        int count = 0; //count用于記錄是第幾個非0數據
        for (int i = 0; i < chessArr1.length; i++) {
            for (int j = 0; j < chessArr1[i].length; j++) {
                if (chessArr1[i][j] != 0) {
                    count++;
                    sparseArr[count][0] = i;
                    sparseArr[count][1] = j;
                    sparseArr[count][2] = chessArr1[i][j];

                }

            }
        }
        //輸出稀疏數組形式
        System.out.println();
        System.out.println("得到的稀疏數組為~~~~");
        for (int i = 0; i < sparseArr.length; i++) {
            for (int j = 0; j < sparseArr[i].length; j++) {
                System.out.printf("%d\t", sparseArr[i][j]);
            }
            System.out.println();
        }
        //將稀疏數組恢復為原始的二維數組
        //1.讀取稀疏數組的第一行得到二維數組的索引
        int chessArr2[][] = new int[sparseArr[0][0]][sparseArr[0][1]];
        //2.讀取后幾行(從稀疏數組的第二行開始)稀疏數組,并賦值給恢復的二維數組
        for (int i = 1; i < sparseArr.length; i++) {
            chessArr2[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];

        }

        //恢復后的二維數組
        System.out.println();
        System.out.println("恢復后的二維數組~~");
        for (int i = 0; i < chessArr2.length; i++) {
            for (int j = 0; j < chessArr2[i].length; j++) {

                System.out.printf("%d\t", chessArr2[i][j]);

            }
            System.out.println();
        }

    }

}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女