题目
下列关于链表[1]的说法正确的是( ) 。A 对循环单链表[2]来说,从表中任一结点[3]出发都能通过前后移动操作遍历整个链表B 对一般单链表来说,可以从任意结点开始遍历表中所有的结点C 双向链表[4]的特点是查找结点的前驱和后继都很容易D 对双向链表来说,结点的存储位置只存放在其前驱结点的后继指针域中
下列关于链表[1]的说法正确的是( ) 。
A 对循环单链表[2]来说,从表中任一结点[3]出发都能通过前后移动操作遍历整个链表
B 对一般单链表来说,可以从任意结点开始遍历表中所有的结点
C 双向链表[4]的特点是查找结点的前驱和后继都很容易
D 对双向链表来说,结点的存储位置只存放在其前驱结点的后继指针域中
题目解答
答案
答案是 A 和 C。
解析:
A. 对循环单链表来说,从表中任一结点出发都能通过前后移动操作遍历整个链表:此说法是正确的。循环单链表的特性在于其尾结点的指针指向头结点,因此从任意一个节点出发,都可以通过前后移动遍历整个链表。这意味着不会出现终止的情况,因此选项 A 是正确的。
B. 对一般单链表来说,可以从任意结点开始遍历表中所有的结点:此说法是错误的。一般的单链表是线性的,从头结点开始才能遍历到其他节点,而从任意节点出发并不能访问整个链表。特别是单链表的每个节点只包含指向后继节点的指针,不具有反向指针。因此,选项 B 是不正确的。
C. 双向链表的特点是查找结点的前驱和后继都很容易:此说法是正确的。双向链表的每个节点都包含指向前驱节点和后继节点的指针,这使得在双向链表中查找任意节点的前驱和后继都变得非常方便。因此,选项 C 是正确的。
D. 对双向链表来说,结点的存储位置只存放在其前驱结点的后继指针域中:此说法是错误的。在双向链表中,每个节点同时存储其前驱节点的指针和后继节点的指针,因此节点的存储位置不仅存放在其前驱节点的后继指针域中,还需要存放在其后继节点的前驱指针域中。因此,选项 D 是不正确的。
解析
步骤 1:分析循环单链表的特性
循环单链表的尾结点的指针指向头结点,因此从任意一个节点出发,都可以通过前后移动遍历整个链表。这意味着不会出现终止的情况,因此选项 A 是正确的。
步骤 2:分析一般单链表的特性
一般的单链表是线性的,从头结点开始才能遍历到其他节点,而从任意节点出发并不能访问整个链表。特别是单链表的每个节点只包含指向后继节点的指针,不具有反向指针。因此,选项 B 是不正确的。
步骤 3:分析双向链表的特性
双向链表的每个节点都包含指向前驱节点和后继节点的指针,这使得在双向链表中查找任意节点的前驱和后继都变得非常方便。因此,选项 C 是正确的。
步骤 4:分析双向链表中节点存储位置的特性
在双向链表中,每个节点同时存储其前驱节点的指针和后继节点的指针,因此节点的存储位置不仅存放在其前驱节点的后继指针域中,还需要存放在其后继节点的前驱指针域中。因此,选项 D 是不正确的。
循环单链表的尾结点的指针指向头结点,因此从任意一个节点出发,都可以通过前后移动遍历整个链表。这意味着不会出现终止的情况,因此选项 A 是正确的。
步骤 2:分析一般单链表的特性
一般的单链表是线性的,从头结点开始才能遍历到其他节点,而从任意节点出发并不能访问整个链表。特别是单链表的每个节点只包含指向后继节点的指针,不具有反向指针。因此,选项 B 是不正确的。
步骤 3:分析双向链表的特性
双向链表的每个节点都包含指向前驱节点和后继节点的指针,这使得在双向链表中查找任意节点的前驱和后继都变得非常方便。因此,选项 C 是正确的。
步骤 4:分析双向链表中节点存储位置的特性
在双向链表中,每个节点同时存储其前驱节点的指针和后继节点的指针,因此节点的存储位置不仅存放在其前驱节点的后继指针域中,还需要存放在其后继节点的前驱指针域中。因此,选项 D 是不正确的。