下面函数的功能是:将两个递增有序的 A 、 B ,归并成一个递减有序的 C 。将算法补充完整。 LinkList merge(LinkList A, LinkList B) { LinkList C; LNode *p,*q,*s; p=A->next; q=B->next;/*p,q 分别指向 A,B 表中第一个结点 */ C=A; C->next=NULL;/* 建立一个空表 C*/ free(B); while(__ _ 1 __ __)/* 合并 */ { if(p->data
data) /* 让 s 指向较小者作为待插结点 */ {s=p;p=p->next;} else {s=q;q=q->next;} __ _ 2 __ __; __ _ 3 __ __;/* 将待插结点 *s 插入到 C 的表头 */ } while(p!=NULL) /* 将 A 表的剩余元素逐个插入到 C 的表头 */ { s=p;p=p->next; s->next=C->next; C->next=s; } while(q!=NULL) /* 将 B 表的剩余元素逐个插入到 C 的表头 */ { s=q;q=q->next; s->next=C->next; C->next=s; } return C; }