《数据结构》编写一个算法使之能实现将有序表Lb中的数据元素插入到有序表La中

如果该数据元素在La中已经存在,则不插入)写出部分函数的C语言代码(不能写类C代码)

//假设有序表为从小到大的整型链表
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;
}
}
}
你测试下-。-~我没测试~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-25
这个类型定义都没有,不管怎么写都是类C代码了,书上有类似的例子。给你一个思路吧,其实你只要看到这两个都是有序表,问题就好解决多了!追问

思路我有,但实际运行不了,求代码,类C代码也行!!