浙大数据结构:02-线性结构1 两个有序链表序列的归并 ...

打印 上一主题 下一主题

主题 1029|帖子 1029|积分 3087

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
数据结构MOOC
PTA习题
02-线性结构1 两个有序链表序列的归并

用p1,p2存储两个头节点。如果都为空直接返回一个空链表
否则选两条链表中第一个较小的值作为新链表第一个结点。
L1,L2后移一下,然后删除两个没有用的头节点
循环遍历,把值小的插入链表中,直到一个链表遍历完。
再把没遍历完的链表插入新链表中,最后返回头节点
  1. List Merge(List L1,List L2)
  2. {
  3.       List p1=L1,p2=L2;
  4. List head=(List)malloc(sizeof(struct Node));
  5.     if(p1->Next==NULL&&p2->Next==NULL)
  6.     {
  7.   head->Next=NULL;return head;
  8.     }
  9.     head->Next=L1->Next->Data>L2->Next->Data?L2->Next:L1->Next;
  10.     List p=head;
  11.      L1=L1->Next;L2=L2->Next;
  12.      p1->Next=NULL;p2->Next=NULL;
  13.     while(L1!=NULL&&L2!=NULL)
  14.     {
  15.      if(L1->Data<L2->Data)
  16.      {
  17.        head->Next=L1;
  18.          head=head->Next;
  19.          L1=L1->Next;
  20.      }
  21.         else
  22.         {
  23.             head->Next=L2;
  24.             head=head->Next;
  25.             L2=L2->Next;
  26.         }
  27.     }
  28.     if(L1)
  29.     head->Next=L1;
  30.     else if(L2)
  31.         head->Next=L2;
  32.     return p;
  33. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表