鏈表總的首元結點、頭結點、頭指針的區別

前言,:今天看書的時候,又複習了一下鏈表的知識點,可是標題上這個知識點總是弄混淆,因此接下來作一個小小的總結,給本身加深理解。spa

1、三者的基本概念;指針

一、首元結點:就是指鏈表中存儲第一個數據元素a1的結點,以下表格所示結點ZHAO就是首元結點:ci

L-----> 數據域和指針域-----> ZHAO+指針域---->  

 

 

二、頭結點:它是在首元結點以前附設的一個節點,其指針域指向首元結點。頭結點的數據域能夠不存儲任何信息,也能夠存儲與數據元素類型的其餘附加信息,例如,當數據元素爲整數型時,頭結點的數據域中可存放該線性表的長度。如上表中的數據域和指針域(在鏈表和線性中一個結點包含兩個域:一個是數據域,另一個是指針域,指針域它本有本身的存儲地址,同時又指向下一個節點的數據域,這就造成了一個邏輯關係)就是一個頭結點。table

三、頭指針:它是指向鏈表中的第一個結點的指針。若鏈表設有頭結點,則頭指針所指結點爲線性表的頭結點;若鏈表不設頭結點,則頭指針所指結點爲該線性表的首元結點,例如,上面的表格中L就是一個頭指針鏈表

2、鏈表增長頭結點的做用有如下幾點:總結

一、增長了頭結點後,首元結點的地址保存在頭結點(就是所說的「前驅」結點)的指針域中,則對鏈表的第一個數據元素的操做與其餘數據元素相同,無需進行特殊處理數據

二、便於空表的和非空表的統一處理;當鏈表不設頭結點時,假設L爲單鏈表的頭指針,它應該指向首元結點,則當單鏈表爲長度n爲0的空表時,L指針爲空(判斷空表的條件可記爲:L==NULL)tab

三、增長頭結點後,不管鏈表是否爲空,頭指針都是指向頭結點的非空指針,若鏈表爲空的話,那麼頭結點的指針域爲空。di

3、總結:co

在順序表中,因爲邏輯上相鄰的兩個元素在物理位置上是緊鄰的,則每一個元素的存儲位置均可從線性表起始位置計算獲得;而在單鏈表中,各個元素的存儲位置是隨意的,可是它要知道頭指針,纔可以精肯定位表中的元素位置。

相關文章
相關標籤/搜索