首页 > 其他分享 >20-4-21--链表--两个有序链表序列的合并

20-4-21--链表--两个有序链表序列的合并

时间:2023-04-22 21:34:11浏览次数:36  
标签:end plink -- next 链表 while 20 NULL

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。

输入格式:

输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。

输出格式:

在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL

输入样例:

1 3 5 -1
2 4 6 8 10 -1
 

输出样例:

1 2 3 4 5 6 8 10

代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct node {
    int date;
    struct node* next;
}linklist;
typedef struct node* plink;
plink addnode(int a,plink end)
{
    plink t=new linklist;
    end->next =t;
    t->date =a;
    t->next =NULL;
    return t;
}
plink deletelist(plink head)
{
    plink t=head->next ;
    plink p;
    while(t)
    {
        p=t;
        t=t->next ;
        delete(p);
        
    }
}
vector <int> v;
int main(){
    plink h1=new linklist,h2=new linklist,end;
    h1->next =NULL;
    h2->next =NULL;
    end=h1;
    int t;
    cin>>t;
    while(t!=-1)
    {
        end=addnode(t,end);
        cin>>t;
    }
    end=h2;
    cin>>t;
    while(t!=-1)
    {
        end=addnode(t,end);
        cin>>t;
    }
    if(h1->next ==NULL&&h2->next ==NULL)
    {
        cout<<"NULL"<<endl;
    }else{
        plink node1=h1->next ,node2=h2->next ;
        while(node1)
        {
            v.push_back(node1->date );
            node1=node1->next ;
        }
        while(node2)
        {
            v.push_back(node2->date );
            node2=node2->next ;
        }
        sort(v.begin(),v.end() );
        for(int i=0;i<v.size();i++)
        {
            cout<<v[i];
            if(i!=v.size()-1)
            {
                cout<<' ';
            }
        }
        
    }
    
    deletelist(h1);
    deletelist(h2);
    delete(h1);
    delete(h2);
    
    
}

结果如下:

 

标签:end,plink,--,next,链表,while,20,NULL
From: https://www.cnblogs.com/daniel350-wang/p/17344054.html

相关文章

  • Serieshe对象和Dataframe对象重新设置索引
    1.Series重新设置索引并用指定数字填充NaN: 2.Series向前填充和向后填充: 3.DataFrame重新设置行列索引: ......
  • 2022-04-22:给你两个正整数数组 nums 和 target ,两个数组长度相等。 在一次操作中,你可
    2022-04-22:给你两个正整数数组nums和target,两个数组长度相等。在一次操作中,你可以选择两个不同的下标i和j,其中0<=i,j<nums.length,并且:令nums[i]=nums[i]+2且令nums[j]=nums[j]-2。如果两个数组中每个元素出现的频率相等,我们称两个数组是相似的......
  • 数据库应用实验一实验报告
    目录实验报告课程:数据库应用班级:2012姓名:郭幸坤学号:20201213实验名称:实验一实验日期:2023.4.15概念模型设计及逻辑模型设计描述ER图关系模式集合数据建模工具的模型设计过程描述物理模型逻辑模型概念模型数据库创建过程描述建立数据库表列表数据库查询设计与实现描述数据库内容......
  • RPC和GRPC
    createdtime20211122updatedtime20211124authorvenki.chen一、是什么1.定义,是做什么用的?rpc是什么?①在分布式计算,远程过程调用(英语:RemoteProcedureCall,缩写为RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计......
  • 《面试1v1》java泛型
    我是javapub,一名Markdown程序员从......
  • Docker安装MySQL
    创建挂载目录mkdir-p/app/mysql&&cd$_docker安装MySQLdockerrun-d-p3306:3306--privileged=true-v/app/mysql/log:/var/log/mysql-v/app/mysql/data:/var/lib/mysql-v/app/mysql/conf:/etc/mysql/conf.d-eMYSQL_ROOT_PASSWORD=123456--namemysql5.7......
  • 音视频八股文(3)--ffmpeg常见命令(2)
    07-ffplay命令播放媒体播放本地文件播放本地MP4视频文件test.mp4的命令,从第2秒位置开始播放,播放时长为10秒,并且在窗口标题中显示"testtime":ffplay-window_title"testtime"-ss2-t10-autoexittest.mp4播放本地MP3音频文件buweishui.mp3的命令:ffplaybuweishui......
  • 《面试1v1》HashMap
    没有人比中国人更懂HashMap我是javapub,一名Markdown程序员从......
  • 分糖果
    自然语言解决问题:首先将每个小孩子定义,并将他们首次得到的糖果数量赋值给他们。该问题明显无法通过一次简单的传递就能结束,因此应用到循环结构。循环至所有小孩子的糖果都相同时输出次数以及所得糖果数量流程图: 具体代码:#include<bits/stdc++.h>usingnamespacestd;intj;i......
  • 类与样式绑定
    Class与Style绑定Vue专门为class和style的v-bind用法提供了特殊的功能增强,除字符串外,表达式的值也可以是对象或数组绑定HTMLclass可以给:class(v-bind:class缩写)传递一个对象来动态切换class<div:class="{active:isActive}"></div>这里是一个布尔值绑定,active是否存......