• 2022-06-19
    删除单链表中指针p所指结点的语句序列为( )。
    A: q=p->next; p->data=q->data; p->next=q->next; free(q);
    B: q=p->next; q->data=p->data; p->next=q->next; free(q);
    C: q=p->next; p->next=q->next; free(q);
    D: q=p->next; p->data=q->data; free(q);
  • A

    举一反三

    内容

    • 0

      在一个单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行(<br/>)。 A: q-&gt;<br/>next = p-&gt;next;p-&gt;next<br/>= q; B: p-&gt;next<br/>= q-&gt;next;q<br/>= p; C: q-&gt;next<br/>= p-&gt;next;p<br/>= q; D: p-&gt;next<br/>= q-&gt;next;q-&gt;next<br/>= p;

    • 1

      在双向链表存储结构中,删除p所指的结点时须修改指针() A: (p-&gt;prior)-&gt;next=p-&gt;next;(p-&gt;next)-&gt;prior=p-&gt;prior; B: p-&gt;prior=(p-&gt;prior)-&gt;prior;(p-&gt;prior)-&gt;next=p; C: (p-&gt;next)-&gt;prior=p;p-&gt;rlink=(p-&gt;next)-&gt;next; D: p-&gt;next=(p-&gt;prior)-&gt;prior;p-&gt;prior=(p-&gt;next)-&gt;next

    • 2

      设指针变量p指向单链表中某结点的直接前驱,若删除单链表中该结点,需要修改指针的操作序列为 。 A: q=p-&gt;next; p-&gt;next=q-&gt;next;free(q); B: q=p-&gt;next; free(q); C: p-&gt;next=p-&gt;next-&gt;next;free(p-&gt;next); D: q=p-&gt;next; free(q);

    • 3

      链队列Q的头指针为front,尾指针为rear,下面哪个选项可以完成链队列的出队操作()。 A: p-&gt;Q-&gt;front;Q-&gt;front=p;free(p); B: p-&gt;Q-&gt;front;Q=p-&gt;next;free(p); C: p-&gt;Q-&gt;front;Q-&gt;front=p-&gt;next;free(p); D: p-&gt;Q-&gt;rear;Q-&gt;front=p-&gt;next;free(p);

    • 4

      现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个结点。 struct node { char data; struct node *next; }*p,*q,*r; 现要将q和r 所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是______。 A: q-&gt;next=r-&gt;next;p-&gt;next=r;r-&gt;next=q; B: p-&gt;next=r;q-&gt;next=-&gt;next;r-&gt;next=q; C: q-&gt;next=r-&gt;next;r-&gt;next=q;p-&gt;next=r; D: r-&gt;next=q;p-&gt;next=r;q-&gt;next=r-&gt;next;