常見的資料結構

2021-09-26 22:59:22 字數 1533 閱讀 8037

資料儲存的常用結構有:棧、佇列、陣列、鍊錶和紅黑樹。我們分別來了解一下:

棧:stack,又稱堆疊,它是運算受限的線性表,其限制是僅允許在標的一端進行插入和刪除操作,不允許在其他任何位置進行新增、查詢、刪除等操作。

簡單的說:採用該結構的集合,對元素的訪問有如下的特點:

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

簡單的說,採用該結構的集合,對元素的訪問有如下的特點:

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

佇列的入口、出口各佔一側。例如,下圖中的左側為入口,右側為出口。

陣列:array,是有序的元素序列,陣列是在記憶體中開闢一段連續的空間,並在此空間存放元素。就像是一排出租屋,有100個房間,從001到100每個房間都有固定編號,通過編號就可以快速找到租房子的人。

簡單的說,採用該結構的集合,對元素的訪問有如下的特點:查詢元素快:通過索引,可以快速訪問指定位置的元素

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

鍊錶:linked list,由一系列結點node(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時i動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。我們常說的鍊錶結構有單向鍊錶與雙向鍊錶,那麼這裡給大家介紹的是單向鍊錶。

簡單的說,採用該結構的集合,對元素的訪問有如下的特點:

二叉樹:binary tree,是每個結點不超過2的有序樹(tree) 。

簡單的理解,就是一種類似於我們生活中樹的結構,只不過每個結點上都最多只能有兩個子結點

我們要說的是二叉樹的一種比較有意思的叫做紅黑樹,紅黑樹本身就是一顆二叉查詢樹,將節點插入後,該樹仍然是一顆二叉查詢樹。也就意味著,樹的鍵值仍然是有序的。

紅黑樹的約束:

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

根節點是黑色的

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

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

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

紅黑樹的特點:

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

常見的資料結構

棧 stack,又稱堆疊,它是運算受限的線性表,其限制是僅允許在表的一端進行插入和刪除操作,不允許在其他任何位置進行新增 查詢 刪除等操作。採用該結構的集合,對元素的訪問有如下的特點 1.先進後出。2.棧的入口 出口的都是棧的頂端位置。壓棧 就是存元素。即,把元素儲存到棧的頂端位置,棧中已有元素依次...

常見的資料結構

遵循先進後出原則,類似裝子彈的彈夾。只有乙個出入口,先進去的後出來。遵循先進先出原則,類似於水管,有乙個入口和乙個出口,這邊進,那邊出,先進的先出來。增刪慢 陣列的長度是固定的,我們想要怎能增加 刪除乙個元素,必須穿件乙個新陣列,把陣列的資料複製過來。在堆記憶體中,頻繁的建立陣列,複製陣列中的元素,...

資料結構與演算法 常見的資料結構整合

資料結構是指互相之間存在一種或多種特定短息的資料與元素的集合。陣列是由型別相同的元素構成的有序集合。陣列分類 一維陣列 二維陣列 多維陣列 二維陣列和稀疏陣列互相轉化 陣列中的重複數字 二維陣列中的查詢 最小的k個數 棧是限定僅在表尾部進行插入和刪除操作的線性表。相關問題集錦 棧實現綜合計算器 中綴...