如何用链表实现有序表的合并操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计147个文字,预计阅读时间需要1分钟。
cvoid MergeList_L(LinkList La, LinkList Lb, LinkList Lc) { pa=La->next; pb=Lb->next; pc=Lc=La; while (pa && pb) { if (pa->data data) { pc->next=pa; pc=pa; pa=pa->next; } else { pc->next=pb; pc=pb; pb=pb->next; } } pc->next=pa ? pa : pb;}
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc)
{
pa=La->next;
pb=Lb->next;
pc=Lc=La;//用La的头结点作为Lc的头结点
while(pa&&pb)
{
if(pa->data<=pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(Lb);
}
算法的时间复杂度是:O(ListLength(La)+ListLength(Lb))
本文共计147个文字,预计阅读时间需要1分钟。
cvoid MergeList_L(LinkList La, LinkList Lb, LinkList Lc) { pa=La->next; pb=Lb->next; pc=Lc=La; while (pa && pb) { if (pa->data data) { pc->next=pa; pc=pa; pa=pa->next; } else { pc->next=pb; pc=pb; pb=pb->next; } } pc->next=pa ? pa : pb;}
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc)
{
pa=La->next;
pb=Lb->next;
pc=Lc=La;//用La的头结点作为Lc的头结点
while(pa&&pb)
{
if(pa->data<=pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(Lb);
}
算法的时间复杂度是:O(ListLength(La)+ListLength(Lb))

