假设以带头结点的单链表表示线性表,阅读下列算法fun,并回答问题: (1)设线性表为( a1, a2,a3, a4, a5, a6, a7 ),写出执行算法fun后的线性表; (2)简述算法fun的功能。 void fun(LinkList L) {//L为带头结点单链表的头指针 ListNode *p,*q; p =L; while (p&&p->next) { q= p->next; p->next=q->next; p=q->next; free(q); } }
举一反三
- 假设以带头结点的单链表表示线性表,阅读下列算法fun,并回答问题 设线性表为(a1,a2,a3,a4,a5,a6,a7),写出执行算法fun后的线性表() voidfun(LinkList L) {//L为带头结点单链表的头指针 ListNode*p,*q; p =L; while(p &&p->next) { q = p->next; p->next =q->next; p =q->next; free(q); } } A: a1,a2,a3,a4 B: a2,a4,a6 C: a1,a3,a5,a7 D: a1,a2,a3,a4,a5,a6,a7
- 【课外练习·线性结构】在一个表头指针为L的单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行 操作。 A: q->next=p->next; p=q; B: q->next=p->next; p->next=q; C: p->next=q->next; q=p; D: p->next=q->next; q->next=p;
- 将一个由指针p所指向的结点插入到单链表L中由指针q所指向的结点后面,则需要执行的语句为() A: p->next = q->next; q->next = p; B: q->next = p; p->next = q->next; C: p->next = q->next; q = p; D: q->next = p->next; p->next = q;
- (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分)
- 在一个单链表HL为表头指针中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行()。 A: q->;next=p->;next;p->;next=q; B: p->;next=q->;next;q=p; C: q->;next=p->;next;p =q; D: p->;next=q->;next;q->;next=p;