遇到一個讓人迷惑的軟考題目。
以下關於線性表采用鏈式存儲時刪除節點運算的描述,正確的是()
A.帶頭結點的線性鏈表刪除結點時,不需要更改頭指針。
B.帶頭結點的線性鏈表刪除第一個結點時,需要更改頭指針。
C.不帶頭結點的線性鏈表刪除結點時,需要更改頭指針。
D.不帶頭結點的線性鏈表刪除第一個結點時,不需要更改頭指針。
首先,明確幾個概念。
首元結點:指鏈表中存儲第一個數據元素a1的結點。
頭結點:是為了操作方便在首元結點前復設的結點。
頭指針:指向鏈表中第一個結點(或為頭結點或為首元結點)的指針。
因為頭結點是不能被刪除的,而帶頭結點的線性鏈表的第一個結點就是頭結點,所以B的說法錯誤,而A正確。
因為不帶頭結點的線性鏈表只有在刪除第一個節點,即首元結點時,需要更改頭指針。如果刪除其他結點,則不需要更改頭指針。
所以C、D均錯誤。