List Set 資料結構 Collections

2021-10-03 01:42:27 字數 1717 閱讀 9399

常見的資料結構:

棧、佇列、陣列、鍊錶和紅黑樹

棧:stack 又稱堆疊,他是運算受限的線性表,其限制是僅允許在標的一端進行插入和刪除操作,不允許在其

他任何位置進行新增、查詢、刪除等操作。

特點:先進後出(即,存進去的元素,要在它後面的元素依次取出後,才能取出該元素)列如彈夾中的子彈

棧的入口、出口的都是棧的頂端位置。

壓棧

:就是存元素。即,把元素儲存到棧的頂端位置,棧中已有元素依次向棧底方向移動乙個位置。

彈棧

:就是取元素。即,把棧的頂端位置元素取出,棧中已有元素依次向棧頂方向移動乙個位置。 佇列

佇列:queue,簡稱隊,它同堆疊一樣,也是一種運算受限的線性表,其限制是僅允許在表 的一端進行插入,而在表的另一端進行刪除。

先進先出(即

存進去的元素,要在後它前面的元素依次取出後,才能取出該元素)例如火車過山洞,車頭先進,車頭先出

佇列的出口和入口各佔一側 陣列

陣列是有序的元素序列,陣列是在記憶體中開闢一段連續的空間,並在此空間存放元素,就像是一排出租屋,都有固定的編號

特點:查詢元素快:通過索引可以快速找到指定元素的位置

陣列特點:查詢快,增刪慢

增刪元素慢:

指定索引位置增加元素:需要建立乙個新陣列,將指定新元素儲存在指定的索引位置,再把原陣列元素根據索引,複製到xins新陣列對應的索引位置

指定索引位置刪除元素:需要建立乙個新陣列,把原陣列元素根據索引,複製到新陣列對應索引的位置,原陣列中指定索引位置的元素不複製到新陣列中

鍊錶查詢元素慢:

想查詢某個元素,需要通過連線的節點,依次向後查詢指定元素

增刪元素快:

增加元素:分成三種情況:1鍊錶頭部新增,2鍊錶中間新增,3鍊錶末尾新增

紅黑數二叉樹  binary tree 是每個節點不超過2的有序樹

我們要說的是二叉樹的一種比較有意思的叫做

紅黑樹

,紅黑樹本身就是一顆二叉查詢樹,將節點插入後,該樹仍然

是一顆二叉查詢樹。也就意味著,樹的鍵值仍然是有序的。

紅黑數的約束:

節點可以是紅色或者黑色的

根節點是黑色的

葉子節點(特指空節點)是黑色的

每個紅色節點的子節點都是黑色的

任何乙個節點到其每乙個葉子節點的所有路徑上黑色節點數相同

紅黑樹的特點:

速度特別快,趨近平衡樹,查詢葉子元素最少和最多次數不多於兩倍

list集合

list介面繼承於collection介面,是單列集合的乙個重要分支,習慣將實現了list介面的集合成為list集合

list集合儲存的元素可以重複,

所有的元素是以一種線性方式進行儲存的

,在程式中可以通過

索引來訪問集合中的指定元素。 ,

list

集合還有乙個特點就是元素有序,即元素的存入順序和取出順序一致。

它是乙個元素訪問有序的集合。例如,存元素的順序是11、

22、33。那麼集合中,元素的儲存就是按照

11、

22、33

的順序完成的)

它是乙個帶有索引的集合,通過索引就可以精確的操作集合中的元素(與陣列的索引是乙個道理)

集合中可以有重複的元素,通過元素的

equals

方法,來比較是否為重複的元素。

資料結構 List Set

棧 佇列 陣列 鍊錶 紅黑樹 雜湊表 list是collection集合的子類,主要特點有 1,有序 儲存進去的元素都是有順序的 2,有索引 可以通過索引精確的查詢某乙個元素 3,可重複 元素內容允許重複 public void add int index,e element 新增元素到指定的位置,...

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...