第二章
線 性 表
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...