頭結點 頭指標 首元素區別

2021-08-08 23:53:39 字數 1214 閱讀 4235

一、  先區分一下概念:

頭結點:

在單鏈表第乙個元素結點之前設定的乙個結點,資料域可以不存任何資訊,指標域指向單鏈表第乙個元素的結點。對於單鏈表來說,頭結點可有可無,但為了操作方便,一般情況下單鏈表都具有頭結點,後面的分析將會區別一下有頭結點和沒有頭結點的區別。

優點:減少了單鏈表新增刪除時特殊情況的判斷,減少了程式的複雜性,主要是新增和刪除在第乙個有元素的結點(首元結點)上有區別,如果鍊錶沒有頭結點,則刪除或新增時都得需要判斷一次首元結點,有了頭結點以後,首元結點實際為鍊錶的第二個結點,使得所有的元素結點的新增刪除更具有統一性,舉例如下:

二、 以刪除結點舉例:

view plain copy

typedef struct stu

type;

沒有頭結點的情況:

view plain copy

type * delete(type * head,intnum)

pb=head;

while ((pb->num!=num) &&(pb->next!=null))

if(pb->num==num)

else

free(pb);

printf("the node isdeleted\n");

}else

return head;

} 有頭結點的情況:

view plain copy

type * delete(type * head,intnum)

pf = head;

pb=head->next;

while (pb->num!=num &&pb->next!=null)

if(pb->num==num)

else

return head;

} 經以上刪除結點**看出,當沒有頭結點時,每次刪除時都得去做下特殊判斷,而刪除帶有頭結點的鍊錶時,刪除的處理上更具有統一性,這也體現了鍊錶有頭結點的優點。

三、 頭指標:

頭指標:

指向單鏈表的第乙個結點的指標,如果單鏈表有頭結點,則頭指標指向頭結點,如果單鏈表沒有頭結點,則頭指標指向第乙個首元結點。

首元結節(首元素):

點單鏈表中第乙個有資料元素的結點。如果單鏈表有頭結點,則首元結點為頭結點的下乙個結點,如果單鏈表沒有頭結點,則首元結點就是單鏈表的第乙個結點。

頭結點 頭指標的區別與意義

頭結點 頭指標 頭結點指的是鍊錶中物理上的第乙個結點 頭指標指的是指向物理上第乙個結點的指標 存放該結點位址的變數 開始結點指的是邏輯上的第乙個元素的結點 但是資料結構中為了簡化插入刪除操作,鍊錶一般都是有空的頭結點的,這樣開始結點就成了事實上 物理上的 第二個結點了 頭指標必須有,但是頭結點可有可...

頭指標,頭結點 首元節點

鍊錶中第乙個結點的儲存位置叫做頭指標,那麼整個鍊錶的訪問就必須是從頭指標開始進行了。之後的每乙個結點,其實就是上乙個的後繼指標指向的位置。這裡有個地方要注意,就是對頭指標概念的理解,這個很重要。鍊錶中第乙個結點的儲存位置叫做頭指標 如果鍊錶有頭結點,那麼頭指標就是指向頭結點資料域的指標。畫乙個圖吧。...

帶有頭結點,頭指標真,尾指標的棧基本操作

include using namespace std typedef char elemtype 帶有頭結點,頭指標真,尾指標的棧基本操作 struct stack pstack pstack ptop pstack pbottom 定義頭指標,尾指標 stack ptop,pbottom 生成頭...