当前位置 : 主页 > 编程语言 > c语言 >

有序表的合并——用链表实现

来源:互联网 收集:自由互联 发布时间:2023-09-07
void MergeList_L(LinkList La,LinkList Lb,LinkList Lc){ pa=La-next; pb=Lb-next; pc=Lc=La;//用La的头结点作为Lc的头结点 while(papb) { if(pa-data=pb-data) { pc-next=pa; pc=pa; pa=pa-next; } else { pc-next=pb; pc=pb; pb=pb-next; } } p

有序表的合并——用链表实现_时间复杂度

有序表的合并——用链表实现_头结点_02

有序表的合并——用链表实现_头结点_03

有序表的合并——用链表实现_时间复杂度_04

有序表的合并——用链表实现_时间复杂度_05

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))

【文章转自 盐城网站开发 http://www.1234xp.com/yancheng.html 欢迎留下您的宝贵建议】
网友评论