//假设有序表为从小到大的整型链表
void Insert(List *&La, const List *Lb)
{
if (!La || !Lb)
return;
List *pa = NULL;
List *qb = Lb;
while(qb)
{
//插入为头结点
if(qb->data < La->data)
{
List *tmp = (List*)malloc(sizeof(List));
tmp = qb;
tmp->next = La;
qb = qb->next;
La = tmp;
pa = La;
continue;
}
else
{
pa = pa->next;
}
//
if(qb->data < pa->data && pa!= NULL)//La中
{
List *tmp = (List*)malloc(sizeof(List));
tmp = qb;
tmp->next = pa->next;
pa->next = tmp;
qb = qb->next;
}
else if(qb->data == pa->data && pa!= NULL)
{
qb = qb->next;
}
else if(qb->data > pa->data && pa->next == NULL)//La尾
{
List *tmp = (List*)malloc(sizeof(List));
tmp = qb;
qa->next = tmp;
tmp->next = NULL;
qb = qb->next;
}
else
{
pa = pa->next;
}
}
}
你测试下-。-~我没测试~
温馨提示:答案为网友推荐,仅供参考