資料結構知識點摘要(基於王道考研)(二) 線性表

2021-10-08 14:58:51 字數 2315 閱讀 3061

定義

相同資料型別(每個資料一樣大)的n個元素的有限序列(有次序)

每個元素有前驅(除第乙個)/後繼(除最後乙個)

基本操作

(創銷增刪改查)

一位陣列可以靜態分配(大小和空間實現固定),也可動態分配(佔滿後開闢一塊)

順序表特點

基本操作

插入將順序表第i個元素及其後元素後移一位(別忘了更改length)

最好情況:表位插入o(1);最壞情況:o(n);平均情況:o(n)

按值查詢(順序查詢)

最好情況:恰在表頭o(1);最壞情況:o(n);平均情況:o(n)

結點分為:指標域 資料域

頭指標標識乙個單鏈表,頭指標為null時表示乙個空表。為操作方便,在第乙個結點之前附加乙個頭結點

頭結點頭指標始終指向第乙個結點(此時為頭結點),頭結點一般不儲存資訊優點

按序號查詢表結點

從第乙個節點順著next域往下找,直到第i個,否則返回最後乙個結點指標域null

while

(p && j(p!=

null

&& p-

>data!=e)

# 若沒找到,且沒到最後,繼續找。到最後p=

null,即尾結點後面的空結點

插入結點(後插)

找到前驅(i-1)為*p,令新結點*s指標域指向*p後繼結點,再令*p指標域指向*s

p =

getelem

(l, i-1)

;// 查詢插入位置的前驅

s->next = p-

>next;

p->next = s;

最後兩步顛倒的話:丟失了原有的p->next,即後繼結點的位置

前插指在乙個結點前面插入。

一種方式是找到i-1轉化為後插

一種是將*s插入到*p後面,然後將s與p的data交換(李代桃僵)

頭插法建立單鏈表

從空表開始生成新結點,然後將新結點插入當前煉表表頭,即頭結點之後

l-

>next =

null;.

..s->next = l-

>next;

// s新插入相當於佔住l(頭結點)的位置

l->next = s;

// l由佔到s前面,重複成為頭結點

尾插法建立單鏈表

增加乙個尾指標r,始終指向尾結點

刪除結點

設*p是被刪的前驅,修改*p的指標域指向*q的下乙個結點,主要耗費在查詢,o(n)

擴充套件:刪除結點*p

將後繼結點的值賦給自身,然後刪除後繼結點(李代桃僵)

結點型別

資料域,指標域:前驅prior 後繼next

可以很方便的找到前驅結點

插入在p所指結點後面插入*s

s-

>next = p-

>next;

// s的後繼指向p的後面

p->next-

>prior = s;

// 後繼結點的前驅為s

s->prior = p;

// s的前驅

p->next = s;

// p的後繼結點設定

可以畫示意圖

刪除迴圈單鏈表

表尾結點*r的next指向l

判斷是否為空:l->next = l,頭結點的指標為頭指標

單鏈表只能從表頭開始遍歷,而迴圈單鏈表可以從任意位置,對於表頭和表尾的操作只需要o(1)

迴圈雙鏈表

為空時,頭結點的prior next 都指向l

借助陣列描述線性表,結點也有資料域和指標域,指標是結點相對位址,又稱游標

靜態鍊錶需要預先分配一塊連續記憶體空間

以next==-1結束,插入刪除與動態鍊錶相同,只需要修改指標,不移動元素(看圖)

1 訪問方式

順序表可以順序訪問,也可隨機訪問(下標)(訪問只需1次);鍊錶只能從表頭順序訪問(訪問需i次)

2 邏輯結構物理結構

都是線性結構,順序訪問時,邏輯上相鄰的元素,物理上也相鄰

3 查詢、插入、刪除

按值查詢,順序表無序時,都為o(n);有順序時,為o(log2n)(折半查詢)

按序號,順序表隨機訪問o(1),鍊錶o(n);

插入刪除,順序表需要移動大量元素

4 空間分配

順序:需要預先分配足夠大空間

鏈式:靈活高效,但儲存密度低(有指標)

面試 王道408資料結構知識點總結

資料結構是相同性質的資料元素的集合 資料結構三要素是邏輯結構 儲存結構 資料的運算 邏輯結構包括集合 線性結構 樹形結構 圖狀結構 集合 元素間無特殊的聯絡 線性結構 元素間只有一對一的聯絡 樹狀結構 元素間有一對多的聯絡 圖狀結構 元素間存在多對多的聯絡 線性結構包括棧 佇列 串 陣列 線性表 樹...

王道考研 資料結構 筆記

上面這張圖來自課件,發現這張圖將計算機四大基礎學科之間的關係很好的體現出來了,故貼在這。資料元素 資料項 資料元素是資料的基本單位。資料元素由資料項組成。如,在飯館排隊的顧客,可用以下資料元素和資料項表示 資料結構 資料物件 資料結構是相互之間存在一種或多種特定關係的資料元素的集合。資料物件是具有相...

考研資料結構必須掌握的知識點

時間複雜度判斷理論 o 1 o log2 n o n o n log2 n o n 2 o n k o 2 n 空間複雜度判斷理論 屬性大小 char unsigned char signed char 1個位元組 short int unsigned short int signed int 2個...