資料結構與演算法03稀疏陣列與佇列

2021-10-02 09:16:52 字數 1557 閱讀 6676

該二維陣列很多值是預設值 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的陣列,儲存相同型別的資料。我們從圖中可知,每乙個記憶體空間大小是一致的。當我們某乙個資料時,例...