文章

61

粉丝

137

获赞

18

访问

40.0k

头像
链表合并 题解:c++ #include<list>实现
P1025 贵州大学2019机试
发布于2024年3月14日 10:53
阅读数 633

#include<bits/stdc++.h>
using namespace std;

int main() {
   list<int> li1;
   list<int> li2;
   list<int> li;
   int len1;
   int len2;
   int len;
   int tmp;
   //建立链表
   cin >> len1;
   for(int i = 0; i < len1; i++){
        cin >> tmp;
        li1.push_back(tmp);
   }
   cin >> len2;
   for(int i = 0; i < len2; i++){
        cin >> tmp;
        li2.push_back(tmp);
   }

   //2路归并
   len = len1 + len2;
   while(len-- > 0){
        if(li1.empty() || li2.empty())
            break;
        if(*li1.begin() <= *li2.begin()){
            li.push_back(*li1.begin());
            li1.pop_front();
        }else{
            li.push_back(*li2.begin());
            li2.pop_front();
        }
   }
   //将所有非空链表中的元素依次加入li中
   while(!li1.empty()){
        li.push_back(*li1.begin());
        li1.pop_front();
   }
   while(!li2.empty()){
        li.push_back(*li2.begin());
        li2.pop_fr...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发