稀疏sparsearray陣列

2022-07-25 22:39:13 字數 1615 閱讀 8831

線性結構常見的有:陣列、佇列、鍊錶和棧

非線性結構包括:二維陣列、多維陣列、廣義表、樹結構、圖結構

編寫的五子棋程式中,有存檔退出和續上盤的功能

分析問題:

因為該二維陣列的很多值是預設值 0, 因此記錄了很多沒有意義的資料->稀疏陣列

當乙個陣列中大部分元素為0,或者為同乙個值的陣列時,可以使用稀疏陣列來儲存該陣列。

稀疏陣列的處理方法是:

稀疏陣列舉例說明

思路:

package sparsearray;

public class sparsearray

首先遍歷chessarr1,得到的都是一些位址值,然後再次遍歷chessarr1,這才能得到所儲存的值

*/for(int arr : chessarr1)

system.out.println();

}//將二維陣列轉稀疏陣列

//1.先遍歷二維陣列得到非0資料的個數

int sum = 0;

for(int i = 0;i < chessarr1.length; i++)}}

//2.建立對應的稀疏陣列

int sparsearr = new int[sum + 1][3];

//給稀疏陣列賦值

sparsearr[0][0] = 11;

sparsearr[0][1] = 11;

sparsearr[0][2] = sum;

//遍歷二維陣列,將非0的值放入稀疏陣列

int count = 0;//計數器用於記錄第幾個非0資料

for(int i = 0;i < 11; i++)}}

//輸出稀疏陣列

system.out.println();

system.out.println("得到的稀疏陣列:");

for(int i = 0;i < sparsearr.length;i++)

system.out.println();

//將稀疏陣列==>恢復成 原始陣列

/*1.先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列

2.在讀取稀疏陣列後幾行的資料,並賦值原始資料即可

*/int chessarr2 = new int[sparsearr[0][0]][sparsearr[0][1]];

for(int i = 1;i < sparsearr.length;i++)

//輸出恢復後的二維陣列

for(int arr : chessarr1)

system.out.println();}}

}

稀疏sparsearray陣列

將二維陣列轉成稀疏陣列 1.先遍歷二維陣列 得到非0資料的個數 int sum 0 for int i 0 i 11 i system.out.println sum sum 建立對應的稀疏陣列 int sparsearr new int sum 1 3 給稀疏陣列賦值 sparsearr 0 0 ...

關於sparseArray稀疏陣列

關於稀疏陣列 二維陣列 轉 稀疏陣列的思路 遍歷 原始的二維陣列,得到有效資料的個數 sum 根據sum 就可以建立 稀疏陣列 sparsearr int sum 1 3 將二維陣列的有效資料資料存入到 稀疏陣列 稀疏陣列轉原始的二維陣列的思路 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二...

Sparsearray稀疏陣列原理及例項詳解

今天覆習下稀疏陣列相程式設計客棧關思想。問題引入 編寫的五子棋程式中,有存檔退出和續上盤的功能。如上圖所示二維陣列,大多值是預設值 0 所以記錄大量無意義的資料意義不大,此時可以引入稀疏陣列。稀疏陣列介紹 當乙個陣列大部分元素為固定值時,可以使用稀疏陣列來儲存類似陣列 稀疏陣列處理思路 稀疏陣列記錄...