資料結構 演算法及線性表總結

2022-09-18 03:33:32 字數 1474 閱讀 2977

2.空間複雜度分析:與臨時變數所佔空間有關。

3.遞迴演算法時間與空間複雜度:都應該寫出遞推式,通過求解遞推式來獲得時間複雜度和空間複雜度。

1.順序表:有隨機訪問特性,但其演算法時間主要花費在刪除和插入元素時元素移動上。

2.鍊錶:不需要移動元素,沒有隨機訪問特性,演算法時間主要花費在遍歷元素上。

1.一種操作受限的線性表,僅允許在表一端進行插入,在表另一端進行刪除。刪除一端為隊頭或隊首,插入一端為隊尾。因而佇列又稱為先進先出表。

2.順序隊

初始化佇列時:front與rear指標為-1。

1.判斷隊空條件:q->front==q->rear;

2.判斷隊滿條件:q->rear=maxsize-1(陣列最大下標)。

3.進隊:rear加一,將元素放入data陣列rear位置;

4.出隊:將front加一,取出data陣列front位置元素。

3.環形隊:

初始化時front與rear指標為0。

1.進隊:rear=(rear+1)%maxsize

2.出隊:front=(front+1)%maxsize

3.判斷隊空條件:q->rear==q->front

4.判斷隊滿條件:(q->rear+1)%maxsize=q->front

作用:解決了佇列的假溢位問題,但隊裡最多只有maxsize-1個元素。

4.鏈隊:

1.鏈隊不存在隊滿溢位問題。

可使用c++的標頭檔案使用。

1.特點:後進先出表。

2.順序棧:

進棧:top++;

出棧:top--;

3. 鏈棧同樣沒有鏈滿問題

參考:可用c++標頭檔案。

串是由字元資料組成的有限序列

1.順序串與鏈串

2.難點:

串的模式匹配:

bf演算法:目標串的第乙個字元開始和模式串第乙個字元匹配,匹配成功,比較目標串和模式串的後續元素(即i++,j++),匹配失敗,目標串回溯到剛開始元素的後續元素。

暴力匹配,需要主串指標回溯。

kmp演算法:

消除了主串指標回溯。用next陣列表示,(next陣列,nextval陣列)

next陣列 與nextval求值問題:陣列開始的下標書上跟老師講的或許不同,很容易混亂。

網上人們用的next

解決方案:

自己選定一種下標,列如

按個人喜好尋找方法吧。

資料結構 演算法及線性表總結

1.演算法是對特定的問題求解步驟的一種描述。演算法描述有自然語言 流程圖 偽 重點掌握 2.通過時間複雜度和空間複雜度來評定乙個演算法的優劣。3.特性 有窮性 確定性 可行性 輸入 輸出。1.線性表分為順序表和煉表。2.順序儲存結構的特點在邏輯上相鄰 物理位置相鄰 可實現隨機儲存 快速訪問 3.鏈式...

資料結構線性表演算法總結及測試

資料結構線性表演算法總結及測試 define maxsize 100 順序表查詢 findelem sqlist l,int e 順序表插入 insertelem sqlist l,int p,int e 順序表刪除元素 deleteelem sqlist l,int p,int e 順序表初始化 ...

資料結構 演算法及線性表的總結

1.線性結構是乙個資料元素的有序關係,掌握線性表的基本運算。2.線性表的順序儲存是使用一塊位址連續的儲存空間,按照線性表中元素的邏輯順序依次存放相應元素。3.線性表的鏈式結構是將線性表中的資料元素存放在一組位址任意的儲存節點,節點之間使用 鏈 進行連線。4.鏈式結構中節點 資料元素 指標。資料元素 ...