欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實現(xiàn)接兩個鏈表實例代碼

 更新時間:2017年03月01日 08:37:32   投稿:lqh  
這篇文章主要介紹了C++實現(xiàn)接兩個鏈表實例代碼的相關(guān)資料,需要的朋友可以參考下

 C++實現(xiàn)接兩個鏈表實例代碼

有以ha為頭結(jié)點的鏈表,元素個數(shù)為m;以hb為頭結(jié)點的鏈表,元素個數(shù)為n?,F(xiàn)在需要你把這兩個鏈表連接起來,并使時間復(fù)雜度最小,請分析并實現(xiàn)。

思路:

很簡單的鏈表操作的題目,逆序頭部插入,并將長度較長的一方接到較短的后面,時間復(fù)雜度為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節(jié)點鏈表的元素個數(shù):"<<endl; 
  cin>>m; 
  LinkList ha,hb,hc; 
  CreateList(ha,m); 
  cout<<"請輸入以hb為head節(jié)點鏈表的元素個數(shù):"<<endl; 
  cin>>n; 
  CreateList(hb,n); 
  Combine(ha,m,hb,n,hc); 
   
  Destory(hc); 
  return 0;   
} 

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Cocos2d-x中使用CCScrollView來實現(xiàn)關(guān)卡選擇實例

    Cocos2d-x中使用CCScrollView來實現(xiàn)關(guān)卡選擇實例

    這篇文章主要介紹了Cocos2d-x中使用CCScrollView來實現(xiàn)關(guān)卡的選擇實例,本文在代碼中用大量注釋講解了CCScrollView的使用,需要的朋友可以參考下
    2014-09-09
  • 詳解C++異常處理三個重要組成部分

    詳解C++異常處理三個重要組成部分

    這篇文章主要為大家介紹了C++異常處理的三個重要組成部分示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 詳解C++中的左值,純右值和將亡值

    詳解C++中的左值,純右值和將亡值

    C++中本身是存在左值,右值的概念,但是在C11中又出現(xiàn)了左值,純右值,將亡值得概念;這里我們主要介紹這些值的概念,感興趣的可以了解一下
    2022-09-09
  • C語言簡單實現(xiàn)快速排序

    C語言簡單實現(xiàn)快速排序

    快速排序是一種不穩(wěn)定排序,這篇文章主要為大家詳細(xì)介紹了C語言簡單實現(xiàn)快速排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C語言和go語言之間的交互操作方法

    C語言和go語言之間的交互操作方法

    下面小編就為大家?guī)硪黄狢語言和go語言之間的交互操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • C++實現(xiàn)聊天程序

    C++實現(xiàn)聊天程序

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)類似QQ聊天程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++實現(xiàn)旋轉(zhuǎn)掃描儀的示例代碼

    C++實現(xiàn)旋轉(zhuǎn)掃描儀的示例代碼

    旋轉(zhuǎn)掃描儀(Rotating?Scanner),也稱為旋轉(zhuǎn)掃描儀或圓形掃描儀,是一種用于獲取圖像和文檔的設(shè)備,下面就跟隨小編一起來學(xué)習(xí)一下如何使用C++實現(xiàn)旋轉(zhuǎn)掃描儀功能吧
    2024-02-02
  • C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié)

    C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié)

    參數(shù)傳遞有傳值、傳址和傳引用這三種,本文主要介紹了C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • C/C++ int數(shù)與多枚舉值互轉(zhuǎn)的實現(xiàn)

    C/C++ int數(shù)與多枚舉值互轉(zhuǎn)的實現(xiàn)

    在C/C++在C/C++的開發(fā)中經(jīng)常會遇到各種數(shù)據(jù)類型互轉(zhuǎn)的情況,本文主要介紹了C/C++ int數(shù)與多枚舉值互轉(zhuǎn)的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • 詳解_beginthreadex()創(chuàng)建線程

    詳解_beginthreadex()創(chuàng)建線程

    這篇文章主要介紹了詳解_beginthreadex()創(chuàng)建線程,使用_beginthreadex(),需要的頭文件支持#include <process.h> 下面我們就來看看具體的實現(xiàn)吧
    2022-01-01

最新評論