数据结构(C语言)题:循环单链表L中,指针P所指结点为尾结点的条件是( )。

2024-12-14 11:14:58
推荐回答(5个)
回答1:

如果存在空头结点:

p->next

head

->next

如果不存在空头结点:

p->next

head

判断空链表的条件是:

head==head->next;

rear==rear->next;



扩展资料:

用尾指针rear表示的单循环链表对开始结点a1和终端结点an查找时间都是O(1)。而表的操作常常是在表的首尾位置上进行,因此,实用中多采用尾指针表示单循环链表。

在单链表中,从一已知结点出发,只能访问到该结点及其后续结点,无法找到该结点之前的其它结点。而在单循环链表中,从任一结点出发都可访问到表中所有结点,这一优点使某些运算在单循环链表上易于实现。

回答2:

如果存在空头结点(head指向的结点只存放head->next的指针,不储存值)
p->next == head ->next
如果头结点非空(head指向的结点不仅存放head->next的指针,也储存值)
p->next == head

回答3:

如果是静态链表,直接计数就可以了。
如果是动态链表:可以用一个记录指针,一直指向循环链表的头节点,当p移向下一个节点时,先判断下一个节点是否为头节点。
也可以不用记录指针,根据头节点的值,或者给一个标志(比如说把头节点的值设置成负的)来判断p的下一个节点是否为头节点。

回答4:

p->next == L.head;

回答5:

p->next==NULL