常見的資料結構:
棧、佇列、陣列、鍊錶和紅黑樹
棧: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個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...