編寫的五子棋程式中,有存檔退出和續上盤的功能。
問題分析:因為該二維陣列的很多值是預設值 0, 因此記錄了很多沒有意義的資料 > 稀疏陣列
當乙個陣列中大部分元素為0,或者為同乙個值的陣列時,可以使用稀疏陣列來儲存該陣列。
稀疏陣列的處理方法
稀疏陣列舉例說明
整體思路分析
;}// 將二維陣列 轉 稀疏陣列
// 1. 先遍歷二維陣列 得到非0資料的個數
int sum =0;
for(
int[
] row : chessarray)}}
// 2. 建立對應的稀疏陣列
int[
] sparsearray =
newint
[sum +1]
[3];
// 給稀疏陣列賦值
sparsearray[0]
[0]=
11;sparsearray[0]
[1]=
11;sparsearray[0]
[2]= sum;
int count =0;
for(
int i =
0;i <
11;i++)}
}// 輸出稀疏陣列的形式
system.out.
println
("得到稀疏陣列");
for(
int[
] row : sparsearray)
system.out.
("開始 將稀疏陣列 恢復成 原始的二維陣列 >>>>>> ");
//1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列
int[
] chessarray2 =
newint
[sparsearray[0]
[0]]
[sparsearray[0]
[1]]
;//2. 在讀取稀疏陣列後幾行的資料(從第二行開始),並賦給 原始的二維陣列 即可
for(
int i=
1;i) system.out.
println
("恢復後的二維陣列");
for(
int[
] row : chessarray2)
system.out.
println()
;}}}
資料結構和演算法學習 棧
棧是一種重要的線性結構,可以說是線性表的一種具體形式 官方定義 棧是乙個後進先出的線性表,它要求只在表尾進行刪除和插入操作 棧是一種特殊的線性表 順序表 鍊錶 操作上有一些特殊要求 1.棧的元素必須 後進先出 2.棧的操作只能在這個線性表的表尾進行。注 對於棧來說,表尾稱為棧的棧頂 top 相應的表...
資料結構和演算法學習重點
1 資料結構是指一組資料的儲存結構 2 演算法就是運算元據的方法 3 資料結構和演算法是相輔相成的,資料結構是為演算法服務的,而演算法要作用在特定的資料結構之上。資料結構和演算法解決的是如何更省 更快地儲存和處理資料的問題,因此,我們就需要乙個考量效率和資源消耗的方法,這就是複雜度分析方法。在學習資...
資料結構和演算法學習筆記
資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科。程式設計 資料結構 演算法 簡單來說資料結構就是關係,元素相互之間存在的一種或多種特定關係的集合。1.1 邏輯結構和物理結構 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條...