41 資料結構

2021-10-04 06:29:27 字數 1765 閱讀 5163

現實世界的儲存,我們使用的工具和建模。每種資料結構有自己的優點和缺點,

資料儲存的常用結構有:棧、佇列、陣列、鍊錶和紅黑樹。

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

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

這裡兩個名詞需要注意:

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

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

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

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

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

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

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

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

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

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

二叉樹是每個節點最多有兩個子樹的樹結構。頂上的叫根結點,兩邊被稱作「左子樹」和「右子樹」。

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

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

根節點是黑色的

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

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

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

《資料結構》 實驗4 1

1.實驗目的鞏固字串和多維陣列相關知識,學會運用靈活應用。1.回顧字串和多維陣列的邏輯結構和儲存操作特點,字元和陣列的物理儲存結構和常見操作。2.學習運用字串和和陣列的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。2.實驗內容 1.從鍵盤輸入一些文字,統計文字單詞的個數...

python 4 1資料結構 列表

1.列表 列表是python中最通用的序列資料型別,可以寫成方括號之間的逗號分隔值 項 列表。列表中的專案不必是相同的型別。如果只有一對方括號而沒有任何元素則表示空列表 示例 list1 空列表 列表生成 推導 式 快速生成列表的語法糖,簡化列表生成方式 語法 exp x for x in 可迭代物...

資料結構和演算法 4 1 棧

用途 陣列,鍊錶,樹等一般用來作為資料儲存的工具,棧和佇列更多是用來作為構思程式演算法的輔助工具,用來執行某項特殊任務,例如handler中的messagequeue訊息佇列,activity棧等 受限訪問 陣列可以通過下標隨機訪問或遍歷,而棧和佇列訪問是受限的,即在特定時刻只有乙個資料項可以被讀取...