C++实现接两个链表实例代码

C++实现接两个链表实例代码,第1张

概述 C++实现接两个链表实例代码有以ha为头结点的链表,元素个数为m;以hb为头结点的链表,元素个数为n。现在需要你把这两个链表连接起来,并使时间复杂度最小,请分析并实现。

 C++实现接两个链表实例代码

有以ha为头结点的链表,元素个数为m;以hb为头结点的链表,元素个数为n。现在需要你把这两个链表连接起来,并使时间复杂度最小,请分析并实现。

思路:

很简单的链表 *** 作的题目,逆序头部插入,并将长度较长的一方接到较短的后面,时间复杂度为O(min(m,n)),注意free使用的地点!。

实例代码:

#include <iostream> #include <string> #include <algorithm> using namespace std; typedef int ElemType;  typedef struct Node {   ElemType data;   struct Node *next; }Lnode,*linkList;   //打印  voID print(linkList &head) {   linkList pList=head->next;   while(pList!=NulL)   {     cout<<pList->data<<" ";     pList=pList->next;   }   cout<<endl; }  //逆序输入链表  voID CreateList(linkList &L,int m) {   linkList p;   L=(linkList)malloc(sizeof(Node));   L->next=NulL;   cout<<"逆序输入元素,空格分隔:"<<endl;   for(int i=m;i>0;--i)   {     p=(linkList)malloc(sizeof(Node));     cin>>p->data;     p->next=L->next;     L->next=p;   }   print(L); }  //连接链表  voID Combine(linkList &ha,int m,linkList &hb,int n,linkList &hc) {   linkList selectMin;   hc=(linkList)malloc(sizeof(Node));   int flag=0;   if(m>n)   {     selectMin=hb;     flag=1; //ha在后面    }   else   selectMin=ha;      while(selectMin->next!=NulL)   selectMin=selectMin->next;      if(flag)   {     selectMin->next=ha->next;     hc=hb;     free(ha);//notice   }   else   {     selectMin->next=hb->next;     hc=ha;     free(hb);   }   cout<<"合并后的链表为:"<<endl;   print(hc);  }  voID Destory(linkList &hc) //仅释放hc即可  {   linkList temp;   while(hc!=NulL)   {     temp=hc;     hc=hc->next;     free(temp);   } } int main() {   int m,n;   cout<<"请输入以ha为head节点链表的元素个数:"<<endl;   cin>>m;   linkList ha,hb,hc;   CreateList(ha,m);   cout<<"请输入以hb为head节点链表的元素个数:"<<endl;   cin>>n;   CreateList(hb,n);   Combine(ha,m,n,hc);      Destory(hc);   return 0;   } 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的C++实现接两个链表实例代码全部内容,希望文章能够帮你解决C++实现接两个链表实例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1245323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存