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


前言,:今天看書的時候,又復習了一下鏈表的知識點,但是標題上這個知識點老是弄混淆,所以接下來做一個小小的總結,給自己加深理解。

一、三者的基本概念;

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

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

 

 

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

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

二、鏈表增加頭結點的作用有以下幾點:

1、增加了頭結點后,首元結點的地址保存在頭結點(就是所說的“前驅”結點)的指針域中,則對鏈表的第一個數據元素的操作與其他數據元素相同,無需進行特殊處理

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

3、增加頭結點后,無論鏈表是否為空,頭指針都是指向頭結點的非空指針,若鏈表為空的話,那么頭結點的指針域為空。

三、總結:

在順序表中,由於邏輯上相鄰的兩個元素在物理位置上是緊鄰的,則每個元素的存儲位置都可從線性表起始位置計算得到;而在單鏈表中,各個元素的存儲位置是隨意的,但是它要知道頭指針,才能夠精確定位表中的元素位置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM