带表头节点的好处?
处理空表和非空表统一。
设
rear
是指向非空带头结点的循环单链表的尾指针,则删除表首结点的操作可表示为
( B )
A
)
p
=
rear; B
)
p= rear->next->next;
Rear=rear->next; rear->next->next
=
p->next;
free(p); free(p);
C
)
rear:=rear->next->next; D
)
rear
=
rear->next
free(rear); free(rear)
设rear是指向非空带头结点的循环单链表的尾指针,则删除表首结点的操作可表示为( B )
A)p=rear; B)p= rear->next->next;
Rear=rear->next; rear->next->next=p->next; free(p); free(p);
C)rear:=rear->next->next; D)rear=rear->next free(rear); free(rear);
最常用操作是在最后一个元素之后插入一个元素和删除最后一个元素,则用( B )存储方式最佳。
A)单链表 B)双链表 C)单循环链表 D)带头结点的双循环链表
指针p1和p2分别指向两个无头结点的非空单循环链表中的尾结点,要将两个链表链接成一个新的单循环链表,应执行的操作为( D )
A)p1->next=p2->next;p2->next=p1->next;
B)p2->next=p1->next;p1->next=p2->next;
C)p=p2->next; p1->next=p;p2->next=p1->next;
D)p=p1->next; p1->next= p2->next;p2->next=p;
对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为( O(1) ),在给定值为x的结点后插入一个新结点的时间复杂度为( O(n) )。
设长度为n的链队列用只设尾指针的单循环链表表示,则出队操作的时间复杂度为( O(1) ),若用只设头指针的单循环链表表示,则出队操作的时间复杂度为( O(1) )。
非空循环单链表head的尾结点(由p所指向),满足条件( p->next=head )
已知链表结点定义如下,每个字符占1个字节,指针占4个字节,则该链表的存储密度是( 80% )。