回覆列表
  • 1 # 佛祖啊擼個人

    3、單鏈表加上頭結點之後,無論單鏈表是否為空,頭指標始終指向頭結點,因此空表和非空表的處理統一,方便了單鏈表的操作,也減少了程式的複雜性和出現bug的機會。

    4、對單鏈表的多數操作應明確對哪個結點以及該結點的前驅。不帶頭結點的連結串列對首元結點、中間結點分別處理等;而帶頭結點的連結串列因為有頭結點,首元結點、中間結點的操作相同,從而減少分支,使演算法變得簡單,流程清晰。對單鏈表進行插入、刪除操作時,如果在首元結點之前插入或刪除的是首元結點,不帶頭結點的單鏈表需改變頭指標的值,在TurboC演算法的函式形參表中頭指標一般使用指標的指標(在C++中使用引用&);而帶頭結點的單鏈表不需改變頭指標的值,函式引數表中頭結點使用指標變數即可,對初學者更易接受。擴充套件資料連結串列中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) +指標(指示後繼元素儲存位置),元素就是儲存資料的儲存單元,指標就是連線每個結點的地址資料。連結串列的具體儲存表示為:

    1、用一組任意的儲存單元來存放線性表的結點(這組儲存單元既可以是連續的,也可以是不連續的)。

    2、連結串列中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存每個結點值的同時,還必須儲存指示其後繼結點的地址(或位置)資訊(稱為指標(pointer)或鏈(link))。鏈式儲存是最常用的儲存方式之一,它不僅可用來表示線性表,而且可用來表示各種非線性的資料結構。

  • 2 # dadazhu1

    1、防止單鏈表是空的而設的。當連結串列為空的時候,帶頭結點的頭指標就指向頭結點,如果當連結串列為空的時候,頭結點的指標域的數值為NULL。

    3、單鏈表加上頭結點之後,無論單鏈表是否為空,頭指標始終指向頭結點,因此空表和非空表的處理統一,方便了單鏈表的操作,也減少了程式的複雜性和出現bug的機會。

    4、對單鏈表的多數操作應明確對哪個結點以及該結點的前驅。不帶頭結點的連結串列對首元結點、中間結點分別處理等;而帶頭結點的連結串列因為有頭結點,首元結點、中間結點的操作相同,從而減少分支,使演算法變得簡單,流程清晰。

    對單鏈表進行插入、刪除操作時,如果在首元結點之前插入或刪除的是首元結點,不帶頭結點的單鏈表需改變頭指標的值,在TurboC演算法的函式形參表中頭指標一般使用指標的指標(在C++中使用引用&);而帶頭結點的單鏈表不需改變頭指標的值,函式引數表中頭結點使用指標變數即可,對初學者更易接受。

    擴充套件資料

    連結串列中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) +指標(指示後繼元素儲存位置),元素就是儲存資料的儲存單元,指標就是連線每個結點的地址資料。

    連結串列的具體儲存表示為:

    1、用一組任意的儲存單元來存放線性表的結點(這組儲存單元既可以是連續的,也可以是不連續的)。

    2、連結串列中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存每個結點值的同時,還必須儲存指示其後繼結點的地址(或位置)資訊(稱為指標(pointer)或鏈(link))。

    鏈式儲存是最常用的儲存方式之一,它不僅可用來表示線性表,而且可用來表示各種非線性的資料結構。

  • 中秋節和大豐收的關聯?
  • 動物的“愛情”是什麼?