●在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是 (50) 。(50)
A.p=NULL
B.p→next=NULL
C.p=h
D.p→next=h
A.p=NULL
B.p→next=NULL
C.p=h
D.p→next=h
● 若在单向链表上,除访问链表中所有结点外,还需在表尾频繁插入结点,那么采用 (31) 最节省时间。
(31)
A. 仅设尾指针的单向链表
B. 仅设头指针的单向链表
C. 仅设尾指针的单向循环链表
D. 仅设头指针的单向循环链表
A.仅有头指针的单向循环链表
B.仅有尾指针的单向循环链表
C.单向链表
D.双向链表
A.插入和删除操作的时间复杂度都为O(1)
B. 插入和删除操作的时间复杂度都为O(n)
C. 插入操作的时间复杂度为O(1),删除操作的时间复杂度为O(n)
D. 插入操作的时间复杂度为O(n),删除操作的时间复杂度为O(1)
在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若P→* next→*next=head,则(55)。
A.p指向头结点
B.p指向尾结点
C.*p的直接后继是头结点
D.*p的直接后继是尾结点
A.p指向头结点
B.p指向尾结点
C.*p的直接后继是头结点
D.*p的直接后继是尾结点
若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。
A.p=p->next; s->next=p; p->next=s;
B.p=p->next; s->next=p->next; p->next=s;
C.s->next=NULL; p=p->next; p->next=s;
D.p=(*p).next; (*s).next=(*p).next; (*p).next=s;
在一个单链表HL中,若要向表头插入一个由指针p指向的节点,则需要执行语句序列()。
A.HL=p;p->next=HL;
B.p->next=HL;HL=p;
C.p->next=HL;p=HL;
D.p->next=HL->next;HL->next=p
A.p->next==NULL;
B.p==NULL;
C.p->next==head;
D.p==head;
A.若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1)
B.在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理
C.加入头结点后,代表链表的头指针不因为链表为空而改变
D.加入头结点后,在链表中进行查找运算的时问复杂度为O(1)
# define NULL 0
void Traversal(NODE。 head)
(NODE*p;
p= head;
/*p为工作指针。/
do
(printf("%d/n", p- >data);
〉while(p! = NULL);
函数中空格部分的选项为:
A. head= p- > next
B. p=head- >next
C. p=p- > next
D. head=head- > next