嚴蔚敏資料結構筆記 第二章線性表

2021-08-15 16:30:11 字數 2292 閱讀 9392

第二章

線 性 表

1.線性表:是由

n(n≥0)

個資料元素組成的有限序列。

2.線性表的基本運算有:

1)initlist(l),

構造空表,即表的初始化;

2)listlength(l),

求表的結點個數,即表長;

3)getnode(l,i),

取表中第

i個結點,要求

1≤i≤listlength(l);4)

locatenode(l,x)查詢l

中值為x

的結點並返回結點在

l中的位置,有多個

x則返回首個,沒有則返回特殊值表示查詢失敗。

5)insertlist(l,x,i)

在表的第

i個位置插入值為

x的新結點,要求

1≤i≤listlength(l)+1;6)

deletelist(l,i)

刪除表的第

i個位置的結點,要求

1≤i≤listlength(l)

;3.順序表:把線性表的結點按邏輯次序存放在一組位址連續的儲存單元裡。

4.順序表結點的儲存位址計算公式:

loc(ai)=loc(a1)+(i-1)*c

;1≤i≤n

5.順序表上的基本運算

(1)插入

void insertlist(seqlist *l,datatype x,int i)

在順序表上插入要移動表的n/2結點,演算法的平均時間複雜度為

o(n)

。(2)刪除

void delete (seqlist *l,int i)

在順序表上刪除要移動表的(n+1)

/2結點,演算法的平均時間複雜度為

o(n)

。 6.單鏈表:只有乙個鏈域的鍊錶稱單鏈表。

在結點中儲存結點值和結點的後繼結點的位址,data  next  data是資料域,

next

是指標域。

(1)建立單鏈表。時間複雜度為

o(n)

。加頭結點的優點:1)鍊錶第乙個位置的操作無需特殊處理;

2)將空表和非空表的處理統一。

(2)查詢運算。時間複雜度為

o(n)

。 1) 按序號查詢。

listnode * getnode(linklist head,int i)

if(i==j)

return p;

else

return null;

}2) 按值查詢。

listnode * locatenode(linklist head ,datatype key)

(3)插入運算。時間複雜度為

o(n)

。void insertlist(linklist head ,datatype x, int i)

(4) 刪除運算。時間複雜度為

o(n)

。void deletelist(linklist head ,int i)

7.迴圈鍊錶:是一種首尾相連的鍊錶。特點是無需增加儲存量,僅對錶的鏈結方式修改使表的處理靈活方便。

8.空迴圈鍊錶僅由乙個自成迴圈的頭結點表示。

9.很多時候表的操作是在表的首尾位置上進行,此時頭指標表示的單迴圈鍊錶就顯的不夠方便,改用尾指標

rear

來表示單迴圈鍊錶。用頭指標表示的單迴圈鍊錶查詢開始結點的時間是

o(1),

查詢尾結點的時間是

o(n)

;用尾指標表示的單迴圈鍊錶查詢開始結點和尾結點的時間都是

o(1)

。10.在結點中增加乙個指標域,

prior|data|next

。形成的鍊錶中有兩條不同方向的鏈稱為雙鏈表。

1) 雙鏈表的前插操作。時間複雜度為

o(1)

。void dinsertbefore(dlistnode *p ,datatype x)

2) 雙鏈表的刪除操作。時間複雜度為

o(1)

。void ddeletenode(dlistnode *p)

11.順序表和煉表的比較

2) 基於時間的考慮:順序表是隨機訪問結構,若線性表的操作主要是查詢,很少有插入、刪除操作時,宜用順序表結構。對頻繁進行插入、刪除操作的線性表宜採用鍊錶。若操作主要發生在表的首尾時採用尾指標表示的單迴圈鍊錶。

12.儲存密度

=(結點資料本身所佔的儲存量)

/(整個結點結構所佔的儲存總量)

儲存密度:順序表=1,鍊錶

<1

資料結構嚴蔚敏 第二章 線性表

2.4 一元多項式的表示及相加 總結資料結構嚴蔚敏 第二章 線性表 學習的書籍為 資料結構 c語言版 清華大學出版社 該章節為書中的第 18頁 43頁。從第2章至第4章討論的 線性表 棧 佇列 串和陣列 都屬於線性結構。線性結構的基本特點是除第乙個元素無直接前驅,最後乙個元素無直接後繼之外,其他每個...

資料結構 嚴蔚敏版第二章筆記

準備考研了,我們學校使用的教材不是這一本,大概整理一下。共勉 線性結構的特點 在資料元素的非空有限集合中 存在唯一的乙個被稱為 第乙個 的資料元素 存在唯一的乙個被稱為 最後乙個 的資料元素 除了第乙個之外,集合中的每個資料元均只有乙個前驅 除了最後乙個之外,集合中的每乙個元素均只有乙個後繼 2.1...

嚴蔚敏版《資料結構》第二章線性表的演算法C語言實現

首先,今天是中秋,明天是國慶,在這說聲節日快樂啊。說點題外話,今天出去走了走,看到藥店就進去稱體重了。尼瑪,竟然輕了4斤,本來就是100剛出頭,現在倒好,直接掉下100了。我想這可能是因為最近天天熬夜,而且最近學校還規定天天要去早讀 直接導致睡眠不足 直到過了英語4級。唉,大一時不能考,不知今年12...