如何用链表实现有序表的合并操作?

2026-04-10 09:101阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计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))

如何用链表实现有序表的合并操作?