遇到一个让人迷惑的软考题目。
以下关于线性表采用链式存储时删除节点运算的描述,正确的是()
A.带头结点的线性链表删除结点时,不需要更改头指针。
B.带头结点的线性链表删除第一个结点时,需要更改头指针。
C.不带头结点的线性链表删除结点时,需要更改头指针。
D.不带头结点的线性链表删除第一个结点时,不需要更改头指针。
首先,明确几个概念。
首元结点:指链表中存储第一个数据元素a1的结点。
头结点:是为了操作方便在首元结点前复设的结点。
头指针:指向链表中第一个结点(或为头结点或为首元结点)的指针。
因为头结点是不能被删除的,而带头结点的线性链表的第一个结点就是头结点,所以B的说法错误,而A正确。
因为不带头结点的线性链表只有在删除第一个节点,即首元结点时,需要更改头指针。如果删除其他结点,则不需要更改头指针。
所以C、D均错误。