在非空双向循环链表结点中,prior域指向该结点的直接前驱,next域指向直接后续,那么在q所指的结点

题目

在非空双向循环链表结点中,prior域指向该结点的直接前驱,next域指向直接后续,那么在q所指的结点后面插入p所指的结点的过程为______。

A.q→next=p;p→prior=q;q→next→prior=p;p→next=q→next。

B.p→next=q→next;q→next=p;q→next→prior=p;p→prior=q。

C.p→prior=q;p→next=q→next;q→next=p;q→next→prior=p。

D.p→next=q→next;q→next→prior=p;p→prior=q;→next=p。

参考答案和解析
正确答案:D
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

6、已知指针 p 指向某双向链表的一个中间结点,下列语句序列实现的操作是()。 q = p -> prior; p -> prior = q -> prior; q -> prior -> next = p; free(q);

A.删除 p 结点

B.删除 p 结点的直接前驱结点

C.删除 p 结点的直接后继结点

D.删除 p 结点及其所有后继结点


p->prior->next==p->next->prior

第2题:

在非空循环双向链表中,在q所指的结点前插入一个由p所指结点的过程依次为: p->next=q; p->prior=q->prior; _____________; q->prior=p.

A.q->next = p

B.q->prior->next = p

C.p->prior->next = p

D.p->next->prior = p


C

第3题:

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

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;


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

第4题:

在双向链表中,在p所指向的结点前插入一个q所指向的结点,相应的操作语句是()。 注:双向链表的结点结构为(prior,data,next)。

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

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

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

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


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

第5题:

已知指针 p 指向某双向链表的一个中间结点,下列语句序列实现的操作是()。 q = p -> prior; p -> prior = q -> prior; q -> prior -> next = p; free(q);

A.删除 p 结点

B.删除 p 结点的直接前驱结点

C.删除 p 结点的直接后继结点

D.删除 p 结点及其所有后继结点


p->prior->next == p->next->prior

第6题:

双向循环链表结点的数据类型为: 设p指向表中某一结点,要显示p所指结点的直接前驱结点的数据元素,可用操作()。

Aprintf(“%d”,p->next->data);

Bprintf(“%d”,p->prior->data);

Cprintf(“%d”,p->prior->next);

Dprintf(“%d”,p->data);


B

第7题:

要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行()。
q->next=p->next;

第8题:

要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行q->next= p->next。()

此题为判断题(对,错)。


标准答案:对

第9题:

已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,写出算法change(p),交换p所指向的结点和它的前缀结点的顺序。


参考答案:
  知道双向循环链表中的一个结点,与前驱交换涉及到四个结点(p结点,前驱结点,前驱的前驱结点,后继结点)六条链。
  [算法描述]
  void Exchange(LinkedList p)
  ∥p是双向循环链表中的一个结点,本算法将p所指结点与其前驱结点交换。
  {q=p->llink;
  q->llink->rlink=p; ∥p的前驱的前驱之后继为p
  p->llink=q->llink; ∥p的前驱指向其前驱的前驱。
  q->rlink=p->rlink; ∥p的前驱的后继为p的后继。
  q->llink=p; ∥p与其前驱交换
  p->rlink->llink=q; ∥p的后继的前驱指向原p的前驱
  p->rlink=q; ∥p的后继指向其原来的前驱
  }∥算法exchange结束。