資料結構學習筆記

2021-09-02 15:34:43 字數 1657 閱讀 1149

一.概論部分

1.資料結構

資料是描述客觀事物且能被計算機識別並加工處理的物件

資料結構是相互之間存在一種或多種特定關係的資料元素的集合

資料及結構包括資料元素的邏輯結構、儲存結構和相適應的運算

邏輯結構包括:結合結構、線性結構、樹形結構和網狀結構

儲存結構包括:順序儲存:位置關係表示邏輯關係(相鄰關係)

鏈式儲存:用指標表示邏輯關係

索引儲存:索引表

雜湊儲存:hash函式

2.演算法

演算法是建立在資料結構基礎上的求解問題的一系列確切的步驟

演算法的五個特性:有效性、確定性、有窮性、輸入、輸出

時間複雜度和空間複雜度

幾個常見的複雜度:o(1)、o(log n)、o(n)、o(nlog n)、o(n^2)、o(n^3)、o(2^n)

二.線性部分

3.線性表

所謂線性表是指n個具有相同特性的資料元素的有限序列

線性表所含的資料元素個數n稱為線性表的長度

把長度為0的線性表稱為空線性表

線性表的基本運算:初始化運算、判空運算、判滿運算、建立運算、求長度運算、

查詢運算、插入運算、刪除運算、訪問運算、輸出\列印運算、撤銷運算

採用鏈式儲存的線性表稱為鍊錶

結點包括兩個域:資料域、指標域

每個結點只有乙個指標域的稱為單鏈表

相對於頭結點而言,其餘結點都稱為表結點

雙向煉表裡包含其直接前驅和直接後繼兩個指標域

迴圈單向鍊錶和迴圈雙向鍊錶

4.棧棧是一種運算受限的線性表,它限定只能在表的一端進行插入和刪除操作

其中,允許插入和刪除的一端稱為棧頂,另一端稱為棧底

不包含任何資料元素的棧稱為空棧

採用順序儲存的棧簡稱為順序棧

採用鏈式儲存的棧稱為鏈棧

兩個方向生長的棧是指,兩個棧共享乙個向量空間,向量空間的兩端分別為兩個棧的棧底,兩個棧的棧頂朝著向量空間的中部進行生長

5.佇列

佇列是一種運算受限的線性表,它限定在表的一端進行插入操作,在表的另一端進行刪除操作

允許插入的一端稱為隊尾,允許刪除的一端稱為隊首

採用順序儲存的佇列稱為順序佇列,佇列的順序儲存結構是指用一組位址連續的儲存單元來一次存放自隊首到隊尾的資料元素

採用鏈式儲存的佇列稱為鏈佇列,鏈佇列的結點結構和鍊錶的結點結構相同

雙端佇列也稱為雙排隊,它允許插入和刪除操作可以在表的任何一端進行

佇列和棧的共性:它們都是運算受限的線性表,都是限定在表的端點處進行插入和刪除操作

佇列和棧的個性:棧是限定在表的一端進行插入和刪除運算,因此具有了「後進先出」的結構特性;

佇列是限定在表的一端進行插入運算,另一端進行刪除運算,因此具有了「先進先出」的結構特性

6.串串是一種資料元素受限的線性表,它的每個資料元素限定為僅由乙個字元組成

將串中所含字元的個數n稱為串長

將不包含任何字元的串稱為空串

將由乙個或多個空格組成的串稱為空格串

將串中任意個連續字元組成的子串行稱為該串的子串,將包含這個子串的串稱為主串

線性表的運算大多以「單個資料元素」為操作物件,而串操作通常以「串的整體」或「子串」作為操作物件

串相等是指兩個串的串值相等,即兩個串的長度相等且它們對應位置上的字元相同

資料結構學習筆記

資料結構概述 定義我們如何把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構 儲存到主儲存器 記憶體 中,以及在此基礎上為實現某個功能 比如查詢摸個 元素,刪除某個元素,對所有元素進行排序 而執行的相應操作,這個相應 的操作也叫演算法 資料結構 個體 個體的關係 演算法 對儲存資料的操作 演算...

資料結構學習筆記

資料結構學習筆記 程式 資料結構 演算法 資料結構 資料 結構 結構的本質是關係 資料之間的關係從不通風層面上分為邏輯關係和物理關係 演算法的設計要依據資料的邏輯關係 演算法的實現要依據資料的物理關係 物理關係是邏輯關係的基礎和載體 演算法實現時需要先依據問題抽象出資料模型,即初步確定待處理資料的邏...

資料結構 學習筆記

一 鍊錶 1 基本特徵 記憶體節點是不連續的,節點之間通過指標彼此關聯。2 基本操作 追加 插入 刪除 遍歷 偽隨機訪問!3 實現要點 1 追加 新建節點存放資料,令新節點的前指標指向當前尾節點,新節點的後指標為null,令當前尾節點的後指標指向新節點,尾指標指向新節點。考慮在空煉表中追加第乙個節點...