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

2021-10-25 01:57:44 字數 1596 閱讀 5360

編寫的五子棋程式中,有存檔退出和續上盤的功能。

問題分析:因為該二維陣列的很多值是預設值 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.

print

("開始 將稀疏陣列 恢復成 原始的二維陣列 >>>>>> ");

//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 邏輯結構和物理結構 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條...