• 2022-06-09
    有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。struct node { int data; struct node *next; } *p, *q, *r;[*] 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()
    A: r->next=q; q->next=r->next; p->next=r;
    B: q->next=r->next; p->next=r; r->next=q;
    C: p->next=r; q->next=r->next; r->next=q;
    D: q->next=r->next; r->next=q; p->next=r;
  • A

    举一反三

    内容

    • 0

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

    • 1

      (2)intBB(LinkList*L){LinkList*p,*q,*r;p=L->next;if(!p)return0;while(p->next){q=p;while(q->next){if(q->next->data!=p->data)q=q->next;else{r=q->next;q->next=r->next;free(r);}}p=p->next;}}Writethefunctionofthealgorithmabove.(5.0分)

    • 2

      已知指针p指向单链表head中的某个结点,若删除其后继结点,则需执行()。 A: r=p; p->next=r->next; free(r); B: r=p->next; p=r->next; free(r); C: r=p->next; p->next=r->next; free(r); D: r=p->next; r->next=p->next; free(r);

    • 3

      有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。 struct node int data; struct node*next; ) *p, *q, *r; 现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是( )。 A: p->next=q->next; B: p-next=p->next->next; C: p->next=r; D: p=q->next;

    • 4

      有以下结构体说明和变量定义,指针p、q、r依次指向一个链表中的三个连续结点。struct node { int data struct node *next ; } *p, *q, *r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是 A: r->next=q; q->next=r->next; p->next=r; B: q->next=r->next; p->next=r; r->next=q; C: p->next=r; q->next=r->next; r->next=q; D: q->next=r->next; r->next=q; p->next=r;