日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的空间。表中不允许又重复的数据

發布時間:2023/12/3 编程问答 23 豆豆
#include<iostream> using namespace std;typedef struct lnode {//定義結點類型int data;struct lnode *next;//遞歸定義 } lnode,*LinkList;void CreateList(LinkList &L,int n) {//創建新鏈表L=new lnode;//生成一個頭結點L->next=NULL;//結點L的next置空for(int i=0; i<n; i++){lnode *p;p=new lnode;//生成新結點cin>>p->data;//輸入結點數據域p->next=L->next;L->next=p;} }void MegerList(LinkList &LA,LinkList &LB,LinkList &LC) {lnode *pa,*pb,*pc;//定義三個結點pa=new lnode;pb=new lnode;pc=new lnode;pa=LA->next;//pa指向鏈表LA的第一個結點pb=LB->next;//指向鏈表LB的第一個結點LC=LA;pc=LC;//pc指向LC,也就是指向LAwhile(pa&&pb){//如果pa小于等于pb,把pa賦給pc的next域,pc指向pa,pa指向pa的下一個元素if(pa->data<pb->data){pc->next=pa;pc=pa;pa=pa->next;}if(pa->data>pb->data){//如果pa大于pb,把pb賦給pc的next域,pc指向pb,pb指向pb的下一個元素pc->next=pb;pc=pb;pb=pb->next;}if(pa->data==pb->data){pc->next=pa;pc=pa;pa=pa->next;pb=pb->next;}}pc->next=pa?pa:pb;//將非空鏈表的剩余段插入到pc所指結點之后delete LB;//釋放LB的頭結點 }void display(LinkList &L) {lnode *p;p=new lnode;p=L->next;while(p){cout<<p->data;p=p->next;} }int main() {LinkList LA,LB,LC;int m,n;cout<<"請輸入LA的長度:";cin>>m;cout<<"請逆序遞減輸入LA的元素:";CreateList(LA,m);cout<<"請輸入LB的長度:";cin>>n;cout<<"請逆序遞減輸入LB的元素:";CreateList(LB,n);MegerList(LA,LB,LC);cout<<"合并后的鏈表LC為:";display(LC);return 0; }

總結

以上是生活随笔為你收集整理的将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的空间。表中不允许又重复的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。