此部分是將上面的思路分析轉換成**實現
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型陣列。陣列在建立的時候會在記憶體中開闢一段連續的記憶體,陣列中的元素都是同一型別的 也就意味著陣列中每一元素所占用的記憶體是一樣的 陣列長度確定後不能再修改,陣列是引用型別,可存在多...
資料結構與演算法 稀疏陣列
首先先介紹一下線性結構與非線性結構 線性結構是比較常用的資料結構,特點就是資料元素是一對一的關係。線性結構有兩種不同的儲存結構,即順序儲存結構 陣列 和鏈式儲存結構 鍊錶 順序儲存的線性表稱為順序表,順序表中儲存的元素是連續的。鏈式儲存的線性表稱為鍊錶,鍊錶中儲存的元素不一定是連續的,元素節點中存放...