資料結構和演算法 稀疏陣列

2021-09-29 08:47:53 字數 1260 閱讀 1751

此部分是將上面的思路分析轉換成**實現

public

class

sparsearray

system.out.

println()

;}//將二維陣列轉換為稀疏陣列

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

int sum=0;

for(

int i =

0; i<

10;i++)}

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

int sparsearr[

]=newint

[sum+1]

[3];

//給稀疏陣列賦值

sparsearr[0]

[0]=

10;sparsearr[0]

[1]=

10;sparsearr[0]

[2]=

2;//遍歷原始二維陣列,將非0的值存放到sparsearr中

int count =0;

//count用於記錄是第幾個非0資料

for(

int i =

0; i<

10;i++)}

}//輸出稀疏陣列的形式

system.out.

println()

; system.out.

println

("得到的稀疏陣列為:");

for(

int i =

0;i)/**

* 將稀疏陣列轉換為原始二維陣列

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

int chessarr2[

]=newint

[sparsearr[0]

[0]]

[sparsearr[0]

[1]]

;//2.根據稀疏陣列第二行以及之後行的資料賦值給原始二維陣列

for(

int i =

1;i)//輸出還原的二維陣列

system.out.

println

("恢復之後的二維陣列:");

for(

int[

] row: chessarr2)

system.out.

println()

;}}}

執行結果:

資料結構和演算法之稀疏陣列

五子棋程式,只有兩種顏色的子,連成五個就gameover。可能乙個棋盤能放下100枚棋子,但是總占用空間只有不到10個,遊戲就over了。那麼這樣儲存到本地file的話,空間是極大的浪費的。這就引出了稀疏陣列。當乙個陣列中大部分元素都是0 或是同乙個值 的時候,就可以用稀疏陣列來儲存此陣列。先有個原...

資料結構 陣列和稀疏陣列

陣列是一種資料結構,其可以在記憶體中連續儲存多個資料元素,在記憶體中的分配也是連續的。如上圖,是乙個長度為6的int型陣列。陣列在建立的時候會在記憶體中開闢一段連續的記憶體,陣列中的元素都是同一型別的 也就意味著陣列中每一元素所占用的記憶體是一樣的 陣列長度確定後不能再修改,陣列是引用型別,可存在多...

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

首先先介紹一下線性結構與非線性結構 線性結構是比較常用的資料結構,特點就是資料元素是一對一的關係。線性結構有兩種不同的儲存結構,即順序儲存結構 陣列 和鏈式儲存結構 鍊錶 順序儲存的線性表稱為順序表,順序表中儲存的元素是連續的。鏈式儲存的線性表稱為鍊錶,鍊錶中儲存的元素不一定是連續的,元素節點中存放...