該二維陣列很多值是預設值 0, 記錄了很多沒有意義的資料
.->稀疏陣列
} // 將二維陣列 轉 稀疏陣列的思路
// 1. 先遍歷二維陣列 得到非0資料的個數
int sum
= 0;
for(int i = 0; i < 11; i++)}}
// 2. 建立對應的稀疏陣列
int sparsearr[
]= new int[sum + 1]
[3];
// 給稀疏陣列賦值
sparsearr[0]
[0]= 11;
sparsearr[0]
[1]= 11;
sparsearr[0]
[2]=
sum;
// 遍歷二維陣列,將非0的值存放到 sparsearr中
int count = 0; //count 用於記錄是第幾個非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. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列,比如上面的 chessarr2 = int [11]
[11]
2. 在讀取稀疏陣列後幾行的資料,並賦給 原始的二維陣列 即可.
*///1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列
int chessarr2[
]= new int[sparsearr[0]
[0]]
[sparsearr[0]
[1]]
;
//2. 在讀取稀疏陣列後幾行的資料(從第二行開始),並賦給 原始的二維陣列 即可
for(int i = 1; i < sparsearr.length; i++)
// 輸出恢復後的二維陣列
system.out.println();
system.out.println(
"恢復後的二維陣列");
for(int[
] row : chessarr2)
system.out.println();}}}
二、陣列模擬佇列實
資料結構與演算法 稀疏陣列
首先先介紹一下線性結構與非線性結構 線性結構是比較常用的資料結構,特點就是資料元素是一對一的關係。線性結構有兩種不同的儲存結構,即順序儲存結構 陣列 和鏈式儲存結構 鍊錶 順序儲存的線性表稱為順序表,順序表中儲存的元素是連續的。鏈式儲存的線性表稱為鍊錶,鍊錶中儲存的元素不一定是連續的,元素節點中存放...
初學資料結構與演算法 稀疏陣列
如下 示例 public static void main string args system.out.println 呼叫tosparsearr方法,把二維陣列轉化為稀疏陣列 int sparsearr tosparsearr chessarr1 呼叫writermapdate方法,把稀疏陣列儲...
資料結構與演算法 03 陣列 Array
陣列概念 用一組連續的記憶體空間,儲存一組相同型別的資料。總結,我們可以將資料之間的關係大致分為兩類,線性結構和非線性結構。我們訪問陣列中的資料時,通常根據資料的下標進行資料的檢視。我們申請乙個長度為10的陣列,儲存相同型別的資料。我們從圖中可知,每乙個記憶體空間大小是一致的。當我們某乙個資料時,例...