其實對於線性表
,我們並不陌生
.學習英語之前
,我們最先開始學習的就是
26給 英文本母,由這
26個字母組成的字母表就是乙個線性表
.撲克我們都玩過
,一副 撲克牌的點數也是乙個線性表
.在我們生活總
,無處不存在著線性表.
線性結構是最簡單且最廣泛的一種資料結構
,其基本特點是結構中的各個元素 之間滿足線性關係
.用數學語言來解釋就線性關係就是資料元素之間存在著一對一的關係
.那麼線性表的定義為
:由稱為元素的資料項組成的一種有限且有序的序列.
線性表中每乙個元素都稱為乙個結點
.對於乙個非空線性表,a0
是第乙個結 點
,an-1
是線性表的最後乙個結點.以為
a2為例,a1是
a2的前驅結點,a3
是a2的後繼結點
.而且第乙個結點和最後乙個結點分別是沒有前驅結點和後繼結點的
,如下圖所示.
順序儲存是最簡單的儲存方式
,通常是用乙個陣列
,從陣列的第乙個元素開始
,將線性表的結點一次儲存在陣列中
,即線性表的第
i個結點儲存在陣列的第
i個元 素中
,用陣列元素的順序儲存來體現線性表中結點的先後次序關係.
鏈式儲存是用鍊錶儲存線性表
,最簡單的是用單向鍊錶
,即從鍊錶的第乙個結點 開始
,將線性表的結點依次儲存在鍊錶的各結點中國
.鍊錶的每個結點不斷要存 儲線性表結點的資訊
,還要用乙個域儲存其後繼結點的指標
.單向鍊錶通過鏈結 指標來體現線性表中結點的先後次序關係.
基本思想是:從表頭順序掃瞄至表尾,將掃瞄到的結點關鍵字與給定值k比較。若當前結點關鍵字與k相等,則查詢成功;若掃瞄結束後,仍未找到與等於k的結點關鍵字,則查詢失敗。
線性表查詢的方法主要是有
:順序查詢
,二分查詢
,分塊查詢
,雜湊查詢.
插入時,從表尾開始到要插入的位置,每個元素向後面移動乙個位置,最後將要插入的值放入即可。
如下圖所示:
1)找到ai-1儲存位置p,生成乙個資料域為x的新結點*s.
2)令結點*p的指標域指向新結點.
3)新結點的指標域指向結點ai.
具體步驟下圖所示:
直接從要刪除的後乙個開始,所有元素向前移動乙個位置即可。
如下圖所示:
1)找到ai-1的儲存位置p(因為在單鏈表中結點ai的儲存位址是在其直接前趨結點ai-1的指標域next中)
2)令p->next指向ai的直接後繼結點(即把ai從鏈上摘下)
3)釋放結點ai的空間,將其歸還給"儲存池"。
具體步驟如下圖所示:
以上鍊表的插入和刪除都是以單向鍊錶為例的,而雙鏈表和迴圈鍊錶的插入和刪除也是一樣的,大家可以自己動手.
我們曾經學過並且使用過資料庫表,excel **對資料進行查詢,刪除,插入,線性表的查詢,刪除,和插入還會難嗎?
深入淺出線性回歸演算法(一)線性回歸初步介紹
相信大家都聽過著名的博物學家,達爾文的大名,而今天這個故事的主人公就是他的表弟高爾頓。高爾頓是一名生理學家,在1995年的時候,他研究了1078對父子的身高,發現他們大致滿足一條公式,那就是 y 0.8567 0.516 x 這條式子中的x指的是父親的身高,y指的是兒子的身高。可以明顯看出,這就是我...
深入淺出sizeof
int佔 位元組,short佔 位元組 1.0 回答下列問題 答案在文章末尾 1.sizeof char 2.sizeof a 3.sizeof a 4.strlen a 如果你答對了全部四道題,那麼你可以不用細看下面關於sizeof的論述。如果你答錯了部分題目,那麼就跟著我來一起 關於sizeof...
深入淺出ShellExecute
ipconfig c log.txt應如何處理?二樓的朋友,開啟拔號網路這樣 shellexecute null,open c windows rundll32.exe shell32.dll,control rundll c windows system telephon.cpl null,sw ...