`

两个有序数列的合并(链表的应用)(4)

 
阅读更多

//两个有序数列的合并
#include<stdio.h>
#include<stdlib.h>
typedef struct No{
int date;
No* next;
} Node;
Node *creat()
{
Node* p=NULL,*head=NULL,*tail=NULL;
int x;
head=(Node*)malloc(sizeof(Node));
head->date=-100;
head->next=NULL;
tail=head;
scanf("%d",&x);
while(x!=-1){
p=(Node*)malloc(sizeof(Node));
p->date=x;
p->next=NULL;
tail->next=p;
tail=p;
scanf("%d",&x);
}
return head;
}
void print(Node *head)
{
Node *p=head->next;
while(p!=NULL){
printf(p->next==NULL?"%d/n":"%d ",p->date);
p=p->next;
}
}
void insert(Node *head,int x)
{
Node *p=head,*q=NULL;
q=(Node*)malloc(sizeof(Node));
q->date=x;
q->next=NULL;
while(p->next!=NULL&&p->next->date<x){/*如果p->next->date<x放前面就不行,
因为访问p->next->date是非法的*/
p=p->next;
}
//printf("p->next=%d x=%d/n",p->next->date,x);这句也是非法的
if(p->next==NULL){
p->next=q;
}
else{
q->next=p->next;
p->next=q;
}
}
Node* sort(Node *head1,Node *head2)
{
Node *p1=head1->next,*p2=head2;
while(p1!=NULL){
insert(p2,p1->date);
p1=p1->next;
}
return p2;
}
main()
{
Node *head1,*head2,*head;
head1=creat();print(head1);
head2=creat();print(head2);
head=sort(head1,head2);
print(head);
return 0;
}

分享到:
评论

相关推荐

    PHP实现合并两个排序链表的方法

    本文实例讲述了PHP实现合并两个排序链表的方法。分享给大家供大家参考,具体如下: 问题 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解决思路 简单的合并排序...

    数据结构和算法必知必会的50个代码实现

    ## 链表* 实现单链表、循环链表、双向链表,支持增删操作* 实现单链表反转* 实现两个有序的链表合并为一个有序链表* 实现求链表的中间结点 ## 栈* 用数组实现一个顺序栈* 用链表实现一个链式栈* 编程模拟实现一个...

    50个必会的数据结构及算法实现源码

    问题:实现两个有序的链表合并为一个有序链表 问题:实现求链表的中间结点 栈 问题:用数组实现一个顺序栈 问题:用链表实现一个链式栈 队列 问题:用数组实现一个顺序队列 问题:用链表实现一个链式队列 ...

    LeetCode刷题笔记——#21. 合并两个有序链表

      递归是一个很直接的方法,想想斐波那契数列 from typing import List ###### leetcode 代码主体 ###### class Solution: def mergeTwoLists(self, l1, l2): if l1 is None: return l2 elif l2 is None: ...

    算法:数据结构和算法必知必会的50个代码实现

    实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 栈 用层叠实现一个顺序栈 用链表实现一个链式栈 编程模拟实现一个浏览器的前进,后退功能 阴离子 用重叠实现一个顺序数值 用链表实现一个链式骨架 实现...

    判断链表是否为回文链表leetcode-Algorithms:Coding_Interviews和Leetcode

    合并两个递增排序的链表 连续子序列的最大和 替换空格 二维数组中的查找 从尾到头打印链表 重建二叉树(用前序和中序构建) 从上到下打印二叉树(层序遍历) 用两个栈实现队列 斐波那契数列 旋转数组的最小数字 矩阵中...

    java算法大全源码包.zip

    若将两个有序表合并成一个有序表,称为二路归并。时间复杂度O(n log n) 。 (6)堆排序 利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。

    Java面试 Java超级经典100问题 Java高级开发工程师必备 Java面试宝典

    合并两个有序链表18.判断二叉树A中是否包含子树B.19.二叉树的镜像20.顺时针打印矩阵、21.包含min函数的栈.22.判断一个栈是否是另一个栈的弹出序列23.层序遍历二叉树。24.后序遍历二叉搜索树。25.二叉树中和为某值的...

    《剑指Offer》题目及代码.zip

    17. 合并两个有序链表 18. 判断二叉树A中是否包含子树B 19. 二叉树的镜像 20. 顺时针打印矩阵 21. 包含min函数的栈 22. 判断一个栈是否是另一个栈的弹出序列 23. 层序遍历二叉树 24. 后序遍历二叉搜索树 25. ...

    leetcode爬楼梯排列组合解法-algorithm_practice:对数据结构、算法相关的编程实践(DataStructureandAl

    实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 实现:assignment1 【任务2 - 栈、队列与递归】 1、栈 用数组实现一个顺序栈 用链表实现一个链式栈 编程模拟实现一个浏览器的前进、后退功能 2、队列 用...

    丢失的最小正整数leetcode-LeetCode:力码

    合并两个有序链表 26 删除排序数组中的重复项 27 移除元素 28 实现strStr 32 最长有效括号 35 搜索插入位置 38 外观数列 41 缺失的第一个正数 53 最大子序列和 58 最后一个单词的长度 63 不同路径 II 66 加一 67 二...

    leetcode数组下标大于间距-leetcode:leetcode刷热题

    21.合并两个有序链表 13.罗马数字转整数 283.移动零 122.买卖股票的最佳时机 242.有效的字母异位词 202.快乐数 190.颠倒二进制位 268.缺失数字 LeetCodeEasy2 38.外观数列 160.相交链表 371.两整数之和 155.最小栈 ...

    Leetcode扑克-jianzhi-offer:剑指offer-Java题解

    Leetcode扑克 剑指offer-Java题解 二维数组中的查找 - [行列递增的二维数组搜索]- leetcode 240 替换空格 从尾到头打印链表 重建二叉树 ...[用前序和中序遍历序列构建...[合并两个有序链表]- leetcode 21 树的子结构 -

    《数据结构 1800题》

    6.数据结构中评价算法的两个重要指标是(时间复杂度和空间复杂度) 【北京理工大学 2001 七、1(2分)】 7. 数据结构是研讨数据的_(1)物理结构_和_(2)逻辑结构 _,以及它们之间的相互关系,并对与这种结构定义...

    leetcode22题-leetcode:leetcode问题

    leetcode22题 Leetcode 刷题记录 两数之和 分配糖果问题 最长公共子序列 替换后的最长重复字符 数组中数字出现的次数 旋转数组的最小值II 查找两个有序数组的中位数 相交链表 ...合并两个有序数组 路径总和

    leetcode中国-LeetCode101:《LeetCode101》例题及练习题

    合并两个有序数组 142 环形链表 2 76 最小覆盖字串 练习 633 平方数之和 680 验证回文字符串 524 通过删除字母匹配到字典里最长单词 总结:Two Sum、归并两个有序数组、快慢指针、滑动窗口   第 4 章 居合斩!二分...

    leetcode周赛有原题吗-leetcode:leetcodepractice(Java),包含《剑指offer》和少量《leetbook》

    合并两个有序链表 简单 0026 删除排序数组中的重复项 简单 0027 移除元素 简单 0028 实现 strStr() 简单 下一个排列 中等 在排序数组中查找元素的第一个和最后一个位置 中等 0035 搜索插入位置 简单 0038 外观数列 ...

    leetcode338-leetcode:leetcode日常刷题

    合并两个有序链表 JavaScript 简单 链表 26 简单 数组、双指针 27 简单 数组、双指针 28 简单 双指针、字符串 35 简单 数组、二分查找 38 外观数列 JavaScript 简单 字符串 中等 # 题名 题解 困难程度 标签分类 2 ...

    LeetCode判断字符串是否循环-Data-Structures-and-Algorithms:记录学习数据结构与算法的笔记

    合并两个有序链表 141: 判断链表中是否有环 206: 反转单链表 876: 求链表中间结点 题目分类 栈 20: 有效的括号 155: 最小栈 232: 用栈实现队列(todo) 844: 比较含退格的字符串 224: 基本计算器 682: 棒球比赛 496: ...

    IOI国家集训队论文集1999-2019

    + [块状链表](#块状链表) + [动态树](#动态树) + [左偏树](#左偏树) + [跳表](#跳表) + [SBT](#sbt) + [线段树](#线段树) + [单调队列](#单调队列) + [哈希表](#哈希表) + [Splay](#splay) * [图论](#图论...

Global site tag (gtag.js) - Google Analytics