資料結構:稀疏棋盤的實現
資料結構:
04:程式等於資料結構加上演算法。然後資料結構可以說是演算法的基礎。
06:資料結構的線性結構和非線性結構:線性結構其實指的就是元素之間存在的是1對一的關係,線性結構包括了順序儲存結構還有鏈式儲存結構。順序儲存就是存東西的時候地址是連續的,鏈式的話儲存的地址就不會是連續的了。
07:稀疏陣列:就是如果一個棋盤裡面存在很多0的數值,可以採用稀疏陣列節省空間。稀疏陣列的第一行就是行,列,還有多少個值。
棋盤轉換的具體操作:
程式碼實現:
package sparsearaay;
public class pr {
public static void main(String[] args) {
int chessArr[][] =new int[11][11] ;
//1表示黑子 2表示藍子
chessArr[1][2] =1;
chessArr[2][3] =2;
//上面已經完成了棋盤的佈置
//建立稀疏陣列 建立sum記錄有多少個有用的資料
int sum = 0 ;
for (int i = 0; i <chessArr.length ; i++) {
for (int j = 0; j <chessArr[i].length ; j++) {
if ( chessArr[i][j]!=0) {
sum++;
}
}
}
System.out.println(sum); //sum=2
//建立稀疏陣列
int sArr[][] =new int[sum+1][3] ;
sArr[0][0]=11;
sArr[0][1]=11;
sArr[0][2]=sum;
//在稀疏陣列存資料
int count = 0 ; //記錄放到第幾行
for (int i = 0; i <chessArr.length ; i++) {
for (int j = 0; j <chessArr[i].length ; j++) {
if ( chessArr[i][j]!=0) {
count++;
sArr[count][0]=i;
sArr[count][1]=j;
sArr[count][2]=chessArr[i][j];
}
}
}
for (int i = 0; i <sArr.length ; i++) {
System.out.println(sArr[i][0]+" "+sArr[i][1]+sArr[i][2]);
}
System.out.println("");
//接下來就是還原了
int[][] arr2 =new int[sArr[0][0]][sArr[0][1]] ;
for (int i = 1; i <sArr.length ; i++) {
arr2[sArr[i][0]][sArr[i][1]]=sArr[i][2];
}
//恢復2維陣列
for (int k = 0; k<arr2.length ; k++) {
for (int j = 0; j <arr2[k].length ; j++) {
System.out.print(arr2[k][j]);
}
System.out.println(" ");
}
}
}
相關文章
- 資料結構(一)-稀疏矩陣資料結構矩陣
- (一)Java資料結構之稀疏陣列Java資料結構陣列
- Pandas高階教程之:稀疏資料結構資料結構
- 資料結構--LinkedList的實現資料結構
- 【資料結構與演算法】——稀疏陣列資料結構演算法陣列
- JavaScript資料結構——圖的實現JavaScript資料結構
- 資料結構與演算法之稀疏陣列資料結構演算法陣列
- 資料結構與演算法:稀疏陣列(一)資料結構演算法陣列
- js實現資料結構--棧JS資料結構
- redis資料結構實現(一)Redis資料結構
- 一、【資料結構】向量(vector)的實現資料結構
- 資料結構(雙向連結串列的實現)資料結構
- Java實現資料結構之線性結構Java資料結構
- 資料結構與演算法—稀疏陣列和佇列資料結構演算法陣列佇列
- 資料結構——單連結串列的C++實現資料結構C++
- [資料結構]連結串列的實現在PHP中資料結構PHP
- [資料結構] 連結串列的實現在 PHP 中資料結構PHP
- Java關於資料結構的實現:樹Java資料結構
- 用go實現常見的資料結構Go資料結構
- js實現資料結構--陣列JS資料結構陣列
- js實現資料結構--佇列JS資料結構佇列
- 【資料結構】ArrayList原理及實現資料結構
- 資料結構之php實現棧資料結構PHP
- js實現資料結構--單連結串列JS資料結構
- 資料結構實驗 多維陣列的實現資料結構陣列
- 資料結構實驗 二維矩陣的實現資料結構矩陣
- 詳細分析連結串列的資料結構的實現過程(Java 實現)資料結構Java
- 資料結構-2.單向連結串列的實現資料結構
- 16×16大小棋盤的五子棋小程式 Java實現Java
- Java關於資料結構的實現:雜湊Java資料結構
- JavaScript資料結構——集合的實現與應用JavaScript資料結構
- php實現基本資料結構之連結串列PHP資料結構
- 資料結構-雙向連結串列(Python實現)資料結構Python
- 資料結構 - 單連結串列 C++ 實現資料結構C++
- 資料結構 - 圖之程式碼實現資料結構
- Redis sds資料結構實現分析ZFRedis資料結構
- 資料結構之php實現佇列資料結構PHP佇列
- 資料結構之php實現陣列資料結構PHP陣列