前言
之前,小玄已經寫過了鏈表相關的文章:
【資料結構與演算法】—— * 鏈表 入門(一)*_forever_bryant的博客-CSDN博客
【資料結構與演算法】—— * 鏈表 入門(二)*_forever_bryant的博客-CSDN博客
在這篇文章,小玄將通過實體講解的方式來為大家進一步溫習相關的內容和知識點,
基本概念
- 結點包括資料域和指標域
- 鏈表是由 n 個結點鏈接成,第一個結點的存盤位置叫頭指標,最后一個結點的指標為“空”
typedef struct Hero{ int id; //英雄編號 char* name; //英雄名稱 //指向下一結點的指標 struct Hero* pNext; }Hero;
int main() { Hero hero1 = { 1, "孫尚香" }; Hero hero2 = { 2, "武則天" }; Hero hero3 = { 2, "狂鐵" }; Hero hero4 = { 2, "夏侯惇" }; Hero hero5 = { 2, "宮本武藏" }; //Hero1 就是頭指標 hero1.pNext = &hero2; hero2.pNext = &hero3; hero3.pNext = &hero4; hero4.pNext = &hero5; hero5.pNext = NULL; return 0; }
鏈表 實體圖解
下圖是對上述資料基礎的資料結構圖:
如果我們想洗掉3號元素和4號元素的話,只需將對應的結點進行洗掉,將對應的指標指向第五個元素,然后釋放相關的記憶體空間即可,
鏈表的頭指標和頭點
基本概念
* 頭指標 : 鏈表中第一個結點的儲存位置
* 頭結點 : 在單鏈表中的第一個結點前附設的一個結點
異同點
頭指標 頭結點 若鏈表沒有頭結點,則是指向頭指標的指標;若沒有則是鏈表指向第一個頭結點的指標; 頭結點是為了操作的統一和方便而設立的,放在第一個結點之前
其資料域一般毫無意義(可以存盤鏈表的長度)
頭指標具有表示作用,所以常常用頭指標表示鏈表的名字 有了頭結點,在第一個結點前插入和洗掉第一個結點時,操作與其他結點的操作就統一了, 無論鏈表是否為空,頭指標均不為空,
頭指標是鏈表的必要元素,
頭結點不一定是鏈表的必要元素,


如果覺得有什么意見或者是需要的話,歡迎在評論區向小玄提出哦!
沖沖沖!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/381984.html
標籤:其他
上一篇:有助于你面試的無頭雙向鏈表





