讀《演算法與資料結構》第二章

2021-10-05 05:32:06 字數 1387 閱讀 2085

1、基本概念與抽象資料型別

(1)線性表:是零個或者多個元素的有窮序列

2、順序表示

(1)順序儲存是表示線性表最簡單的方法

3、順序表基本操作

(1)建立空順序表

(2)判斷線性表是否為空

(3)在順序表中求某元素的下標

(4)順序表的插入

(5)順序表的刪除

4、演算法分析與評價

(1)插入和刪除的平均時間代價和最壞時間代價都是o(n)

(2)一次定位需要和n/2個元素進行比較,時間代價為o(n)

(3)特殊情況,如果順序表中元素按照值公升降序排列,二分法會使得定位操作的時間代價減少到o(log2n)

1、概念

(1)實現線性表的另一種儲存結構

(2)不連續的儲存單元

(3)附加資訊:通過增加指標來指示元素之間的邏輯關係和後繼元素的位置

2、單鏈表表示

(1)只有後繼關係

(2)每個結點包括兩個域:資料域和指標域

(3)資料域:存放元素本身資訊

(4)指標域:存放其後繼結點的儲存位置

(5)最後乙個元素的指標為空指標,演算法中用null表示

(6)時間複雜度分析

查詢的需要n/2個結點,時間複雜度為o(n)

插入、刪除的時間複雜度均為o(n)

3、迴圈鍊錶

(1)最後乙個結點的指標不設定為空,而是指向頭乙個結點

4、雙鏈表

(1)每個結點都設後繼指標和前驅指標

1、順序儲存結構的優點

(1)元素之間的邏輯關係是通過儲存位置直接反映的,順序儲存結構中只需要存放資料元素自身的資訊,因此,儲存密度大、空間利用率高

(2)元素的位置可以用元素的下標通過簡單的解析式計算出來,因此可以隨機訪問

2、順序儲存結構的缺點

(1)元素的插入和刪除運算可能需要移動許多其它元素的位置

(2)一些長度變化較大的線性表必須按最大需要的空間分配儲存

3、鏈結儲存結構的優點

(1)不要預先按最大的需要分配連續空間

(2)線性表的插入和刪除只需修改指標域,而不需移動其他元素

4、鏈結儲存接結構的缺點

(1)每個結點中的指標域都需要額外占用儲存空間,儲存密度小

(2)鏈式儲存結構是一種非隨機儲存結構,查詢任一結點都要從頭指標開始,沿著指標域乙個乙個地搜尋,增加了時間代價

第二章 資料結構與演算法基礎

資料 描述客觀事物的數值 字元已經能輸入機器且能被處理的各種符號集合。資料元素 資料的基本單位,是資料集合的個體。資料物件 性質相同的資料元素的集合,是資料的子集。資料結構 相互之間存在一種或多種特定關係的資料元素的集合。邏輯結構 資料結構的邏輯層面。按照元素之間的相互關係的特性,分為 集合 線性結...

第二章 資料結構 二

知識點 trie樹 並查集,堆的操作 高效地儲存和查詢字串集合的資料結構 const int n 100010 int son n 26 cnt n idx 插入 void insert char str cnt p 以這個點結尾的字元數 查詢 intquery char str return cn...

第二章 演算法 (資料結構筆記)

我自己寫的累加演算法 1 100 int i,count 0 for i 0 i 100 i cout0 高斯的累加演算法 int n 100,count 0 count n n 1 2 cout 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。演...