線性表 單鏈表(頭結點與頭指標)

2021-07-05 23:02:22 字數 1187 閱讀 2858

當鍊表的每個結點只包含乙個指標域時,我們稱此鍊錶為單鏈表。

關於單鏈表的訪問,有時候我們在單鏈表的第乙個結點(有效元素)之前附設乙個結點,稱之為頭結點;指向頭結點的指標,稱之為頭指標;對單鏈表的訪問必須從頭指標開始進行,由於單鏈表的最後乙個資料元素沒有直接後繼,則指標為null。

對於頭結點,資料域可以不儲存任何資訊,也可儲存如鍊表長度等附加資訊。

下面是帶頭結點的單鏈表與空表的比較圖。

頭指標與頭結點不同,頭結點即第乙個結點,頭指標是指向第乙個結點的指標。鍊錶中可以沒有頭結點,但不能沒有頭指標。

以下是頭指標與頭結點的關係:

//定義結點的結構體

typedef

struct lnodelnode,*linklist;

則定義linklist l;時,l為鍊錶的頭指標

l=(linklist) malloc (sizeof(lnode)); //建立乙個結點
此處返回給l的是乙個指標,並且賦給了頭指標。

l->next=

null; //這裡說明我建立了乙個頭結點,即同時運用了頭指標和頭結點。

小結關於頭指標:

針就是指向煉表頭結點的指標。

頭指標具有標識作用,故常用頭指標冠以鍊錶的名字。

無論鍊錶是否為空,頭指標均不為空。頭指標是鍊錶的必要元素。

關於頭結點:

頭結點是為了操作的統一與方便而設立的,放在第乙個元素結點之前,其資料域一般無意義(當

然有些情況下也可存放鍊錶的長度、用做監視哨等等)。

有了頭結點後,對在第乙個元素結點前插入結點和刪除第乙個結點,其操作與對其它結點的操作

統一了。

首元結點也就是第乙個元素的結點,它是頭結點後邊的第乙個結點。

頭結點不是鍊錶所必需的。

單鏈表 頭指標與頭結點

頭指標 頭指標是指鍊錶指向第乙個結點的指標,若煉表有頭結點,則是指向頭結點的指標。頭指標具有標識作用,所以常用頭指標冠以鍊錶的名字。無論鍊錶是否為空,頭指標均不為空。頭指標是鍊錶的必要元素。頭結點 它是為了操作的統一和方便設立的,放在第乙個元素的結點之前,其資料域一般無意義 但也可以用來存放鍊錶的長...

線性表頭結點 頭指標儲存

本文主要是跟同學討論到資料結構裡面線性表的頭指標裡面儲存了什麼東西。那麼在鍊錶裡面頭指標到底存了恩什麼呢?首先,對於頭結點的理解,我們需要結合頭指標來了解,所謂的頭指標就是用來指示鍊錶的第乙個結點的儲存位置,也就是說儲存的是第乙個節點物件的位置。這裡補充一下,由於最後乙個元素沒有直接後繼,所以線性表...

線性表 單鏈表 快慢指標

快慢指標 定義兩個指標,乙個快,乙個慢,可以有多種用途。例如 快速找到位置長度單鏈表中的中間結點 對於迴圈鍊錶中利用快慢指標也可以判斷是否存在環。快速找到位置長度單鏈表中的中間結點 1 使用乙個指標,先索引一遍獲取總長度,再取長度一半去迴圈獲取到中間值 o 3l 2 2 使用兩個指標,快指標和慢指標...