頭指針

頭指針

頭指針是以確定線性表中第一個元素對應的存儲位置,一般用於處理數組、鏈表、隊列等數據結構。單鏈表可以用頭指針的名字來命名。單鏈表中頭指針指向第一個結點。

介紹


鏈表中第一個結點的存儲位置叫做頭指針,那麼整個鏈表的存取就必須是從頭指針開始進行了。之後的每一個結點,其實就是上一個的後繼指針指向的位置。
鏈式存儲時只要不是循環鏈表,就一定存在頭指針。

頭指針和頭結點


由定義可知頭指針指向鏈表第一個存儲位置,當存在頭結點時頭指針指向頭結點,這時如果刪除鏈表中的節點頭指針不會改變(頭指針不能刪除)。
圖1
圖1
當不存在頭結點時,頭指針指向首結點,如果這時候刪除首結點那麼頭指針發生改變。這裡有個地方要注意,就是對頭指針概念的理解,這個很重要。“鏈表中第一個結點的存儲位置叫做頭指針”,如果鏈表有頭結點,那麼頭指針就是指向頭結點數據域的指針。畫一個圖吧。
頭指針就是鏈表的名字。頭指針僅僅是個指針而已。
• 頭結點是為了操作的統一與方便而設立的,放在第一個元素結點之前,其數據域一般無意義(當然有些情況下也可存放鏈表的長度、用做監視哨等等)。
• 有了頭結點后,對在第一個元素結點前插入結點和刪除第一個結點,其操作與對其它結點的操作統一了。
• 首元結點也就是第一個元素的結點,它是頭結點後邊的第一個結點。
• 頭結點不是鏈表所必需的。
• 是的,對於頭指針,我們也可以有相應的理解了。
• 在線性表的鏈式存儲結構中,頭指針是指鏈表指向第一個結點的指針,若鏈表有頭結點,則頭指針就是指向鏈表頭結點的指針。
• 頭指針具有標識作用,故常用頭指針冠以鏈表的名字。
• 無論鏈表是否為空,頭指針均不為空。頭指針是鏈表的必要元素。
• 單鏈表也可以沒有頭結點。如果沒有頭結點的話,那麼單鏈表就會變成這樣:
圖2
圖2