工学

判断题非空双向循环链表中由q所指的结点后面插入一个由p指的结点的动作依次为:p->prior=q,p->next=q->next,q->next=p,q->prior->next←p。A 对B 错

题目
判断题
非空双向循环链表中由q所指的结点后面插入一个由p指的结点的动作依次为:p->prior=q,p->next=q->next,q->next=p,q->prior->next←p。
A

B

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是()。

A.p=q->next

B.p->next=q

C. p->next=q->next

D.q->next=NULL


参考答案C

第2题:

在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。

A、p->next=q->next

B、q->next=NULL

C、p->next=q

D、p=q->next


标准答案:A

第3题:

在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是()

A、p->next=q;q->prior=p;p->next->prior=q;q->next=q;

B、q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;

C、q->next=p->next;q->prior=p;p->next=q;p->next=q;

D、p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;


参考答案:B

第4题:

在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是()。

A、p->next=s;s->prior=p;p->next->prior=s;s->next=p->next;

B、s->prior=p;s->next=p->next;p->next=s;p->next->prior=s;

C、p->next=s;p->next->prior=s;s->prior=p;s->next=p->next;

D、s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;


参考答案:D

第5题:

在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点其修改指针的操作是( )。(双向链表的结点结构是llink,data,rlink)

A: p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=q;

B: p->llink=q; p->llink->rlink=q; q ->rlink=p;q->llink= p->llink;

C: p->llink=q; q->llink= p->llink; p->llink->rlink=q;p->llink=q;

D: q->llink= p->llink;q->rlink=p; p->llink =q;p->llink=q;


正确答案: C

第6题:

在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。

A.p->next=q;q->prior=p;p->next->prior=q;q->next=q;

B.p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;

C.q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;

D.q->prior=p;q->next=p->next;p->next=q;p->next->prior=q;


参考答案:C

第7题:

已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针x指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。

A、q->next=x->next;x->next=p;

B、s->next=p;q->next=x->next;

C、p->next=x->next;x->next=p;

D、x->next=q;p->next=x->next;


参考答案:A

第8题:

假设双链表结点的类型如下: Typedef struct linknode {int data; /*数据域*/ struct linknode *llink; /*llink是指向前驱结点的指针域*/ struct linknode *rlink; /*rlink是指向后续结点的指针域*/ }bnode 下面给出的算法段是要把一个q所指的新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,能正确完成要求的算法段是(32)。

A.q->rlink=p;q->llink=p->llink;p->llink=q;p->llink->rlink=q;

B.p->llink=q;q->rlink=p;p->llink->rlink=q:q->llink=p->llink;

C.q->llink=p->llink:q->rlink=p;p->llink->rlink=q;p->llink=q;

D.以上都不对


正确答案:C
解析:本题考查链表的操作问题。在链表中插入一个结点时,首先需要确定插入的位置,题目中是插入在p结点前面,因此,需要把插入结点q的rlink指向p,q的llink指向p的llink。然后,需要把p的llink指向q,p的前驱结点的rlink也指向q。

第9题:

在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行()。

A、s->next=p->next;p->next=s

B、q->next=s;s->next=p

C、p->next=s->next;s->next=p

D、p->next=s;s->next=q


参考答案:B

第10题:

在双向循环链表中,在P指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是(55)。

A.P->llink=q;q->rlink=p;P->llink->rlink=q;q->llink=p;

B.P->llink=q;P->llink->rlink=q;q->rlink=p;q->llink=p->llink;

C.q->rlink=p;q->liink=p->llink;P->llink->rlink=q;P->llink=q;

D.q->llink=p->llink;q->rlink=p;P->llink=q;P->rlink=q;


正确答案:C
解析:这里应是先将;的左右指针设定,即q的左指针赋为p的左指针,q的右指针赋为p,这两步可以互换;然后将p的左指针指向的结点的右指针赋为q;最后将p的左指针赋为qo所以应选Co

更多相关问题