//主要的合并函数 /* 定义insert函数,用来合并两个链表 */ struct student * insert(stuct student * ah,struct student * bh) {struct student * pa1,* pa2,* pb1,* pb2; pa2=pa1=ah; pb2=pb1=bh; do { if((pb1->num>pa1->num) && (pa1->next=NULL)){ break; } while((pb1->num>pa1->num) && (pa1->next!=NULL)) { pa2=pa1; pa1=pa1->next; //pa2永远是合并后链表pa1的上一个节点 } if (pb1->num<=pa1->num) {if (ah==pa1) ah=pb1; else pa2->next=pb1; pb1=pb1->next; pb2->next=pa1; pa2=pb2; pb2=pb1; } } while ((pa1 != NULL) && (pb1 != NULL)); if ((pb1->num>pa1->num) && (pa1->next==NULL)) pa1->next=pb1; return(ah); }