合并两个排好序的链表(c++)
#include<iostream>
struct node{
int payload;
node* next;
node(int payload){this->payload=payload;next=nullptr;}
};
void bianli(node* head){
node* iterator = head;
while(iterator){
std::cout << iterator->payload << " ";
iterator = iterator->next;
}
std::cout<<" "<<std::endl;
}
class linkedlist{
node* head,*tail;
public:
linkedlist():head(nullptr),tail(nullptr){};
void push_back(int value){
if(empty()){
head = tail = new node(value);
}else{
tail->next = new node(value);
tail = tail->next;
}
}
int front(){
if(empty()){
throw "The list is empty";
}
return head->payload;
}
void pop_front(){
if(empty()){
throw "The list is empty";
}
node* first_node = head;
head = head->next;
delete first_node;
}
bool empty(){
return head==nullptr;
}
void output(){
node* iterator = head;
while(iterator){
std::cout << iterator->payload << " ";
iterator = iterator->next;
}
std::cout << std::endl;
}
};
linkedlist merge(linkedlist a,linkedlist b){
linkedlist result ;
while(!a.empty() || !b.empty()){
if(a.empty()){
result.push_back(b.front());
b.pop_front();
}else if(b.empty()){
result.push_back(a.front());
a.pop_front();
}else if(a.front() > b.front()){
result.push_back(b.front());
b.pop_front();
}else{
result.push_back(a.front());
a.pop_front();
}
}
return result;
}
int main(){
linkedlist a,b;
a.push_back();
a.push_back();
a.push_back();
a.push_back();
b.push_back();
b.push_back();
b.push_back();
b.push_back();
b.push_back();
b.push_back();
linkedlist result = merge(a,b);
result.output();
system("pause");
return ;
}
合并两个排好序的链表(c++)的更多相关文章
- Python 实现把两个排好序的的列表合并成一个排序列表
列表是升序的 # -*- coding: utf-8 -*- # 合并两个排序的数组 def merge_list(a, b): if not a: return b if not b: return ...
- 面试题26:合并k个排好序的单链表
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. c ...
- Python实现两已知排好序的列表合并成一个排好序的列表
#方法0.5--- lst1 = [1, 3, 7, 9, 12] lst2 = [4, 8, 9, 13, 15, 19] def merge(a, b): c = [] h = j = 0 whi ...
- LeetCode OJ:Remove Duplicates from Sorted List (排好序的链表去重)
Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...
- 6.5 k个已排好序链表合并为一个排序链表
1 建立链表(带哨兵位的)2 建立最小堆方法3 合并已排好序的k个链表 typedef int DataType; //建立链表 class Link { private: struct Node { ...
- [Leetcode] Merge two sorted lists 合并两已排序的链表
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...
- LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)
21. 合并两个有序链表 21. Merge Two Sorted Lists 题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. LeetCode ...
- [剑指offer] 14. 链表中倒数第K个节点+翻转+逆序打印+合并两个排序链表 + 链表相交(第一个公共节点) (链表)
题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路: 两个指针,起始位置都是从链表头开始,第一个比第二个先走K个节点,当第一个走到链表尾时,第二个指针的位置就是倒数第k个节点.(两指针始终相 ...
- Java 合并两个有序链表
编程实现合并两个有序(假定为降序)单链表的函数,输入为两个有序链表的头结点,函数返回合并后新的链表的头节点, 要求:不能另外开辟新的内存存放合并的链表. 递归方式: /* * 递归方式 */ publ ...
随机推荐
- MySQL的数值类型,时间
数值类型 整数型 tinyint smallint mediumint int|integer bigint 注意: 1, 如何选择数据类型,我们的原则是:够用就行!尽量的选择占用内存小的整型 ...
- 基于MFC的单文档,多文档,对话框应用程序
从类的角度区分: 基于对话框(3个类): CAboutDlg 程序名App 程序名Dlg 单文档(5个类): CAboutDlg CMainFrame 程序名App 程序名Doc 程序名View 多文 ...
- 冲刺一 (Day 3)
冲刺一 (Day 3) 用户表 uid int 8 用户ID username varchar 20 用户名 password varchar 20 密码 email varchar 30 邮箱 ph ...
- spring-security4.1.2的学习
spring security教程 spring security是什么? Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了 ...
- 关于C中struct和union长度的详解
这几天看<代码大全>中的第十三章---不常见的数据类型,里面讲解到了C语言中的struct以及对指针的解释,联想到以前看过相关的关于C语言中stuct长度的文章,只是现在有些淡忘了,因此今 ...
- selenium3.0.1调用firefox
报错信息如下时: selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to b ...
- matplotlib 显示中文 与 latex冲突
如果在使用中文之前包含了使用latex的语法: mpl.rcParams['text.usetex'] = True 将不能正确显示含有中文的图片. 附 显示中文的方法: from matplotli ...
- PPP(杜撰)
最开始,电话线入户,用户买来电脑想上网,最简便的方法想办法利用电话线来实现. 最后想了个法子,用电脑的UART的口连到电话线上: 网络提供商一段也用UART为用户提供网络服务: 那么问题来了,UART ...
- hive中分析函数window子句
hive中有些分析函数功能确实很强大,在和sum,max等聚合函数结合起来能实现不少功能. 直接上代码演示吧 原始数据 channel1 2016-11-10 1 channel1 2016-11-1 ...
- nagios二次开发(五)---nagios和nagiosql的关系
根据对nagios和nagiosql的了解,笔者简要的将二者的关系粗略的梳理了一下,具体情况如下图所示: 从上面的关系图中可以看出,nagios与nagiosql共享了主机.主机组.服务.服务组等.c ...