数列有序!
Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 22117Accepted Submission(s): 9464
Problem Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output
对于每个测试实例,输出插入新的元素后的数列。
Sample Input
Sample Output
先说说 链表。 早就知道点皮毛,但一直没真正用过链表。 今天终于算是用了一下。虽然是特别简单的一个链表问题。链表只是在思维上连续,但物理上是不连续的。链表最基本的是需要三个指针,一个头指针,一个指针用于开辟新内存,还有一个就是用于连接。头指针就是指向整个链表开端,就像是一根铁链,只要手握着一头,就可以顺利的找到每个环节。
最基本的形式就是用到结构体
struct node
{
int a;
......
//数据部分。
struct node *next;
};
这里的next指针就是指向下一个结构体的指针。

这是一张单向链表的思路图。
链表给我最大的经验就是,不要看看书就以为自己懂了,纸面上理解不难,难的是实践。所以不要停留在书面上,通过一道题自己一步步写出代码来,可能比看很久的书收获还大。下面是关于这题的代码
本来这题我在hdu用 c 叫的时候 CE 了,原因是代码中 定义一个新的结构体变量 必须 用 struct node *temp;不能写成
node * temp; 但第二种写法c++ 中是可以的。所以我就用c++交上去AC了。 没改代码了。还有一个就是插入的数字可能比原有序列的所有元素都大 或都小, 这是我代码没考虑的。
今天整个收获还是不错的。 分冶算法开始懂一点了,(领略到了一点分冶的魅力 ^_^ )快速排序搞定了。唉, 不过队里 布置的寒假任务 计算几何 还没开始看。今晚要早点睡觉。 明天继续。
分享到:
相关推荐
### C++ 版本将两个有序链表合并为一个新的有序链表并返回原理及代码实现 在计算机科学中,链表是一种常见的数据结构,广泛应用于各种算法和数据处理任务中。本文将详细介绍如何使用C++语言来实现一个功能,即合并...
何将两个有序链表并为一个有序链表。
将两个有序的链表合并为一个有序链表,链表的大小是可变的
两个有序链表,合成为一个有序链表。文档中为升序模式。如果有需要的朋友们可以参考下代码。时间复杂度m+n,空间复杂度为2(m+n)
在这个题目中,你可能会被要求用链表来构建一个结构,以便高效地存储和处理这些连续字符的信息。这将考验你对链表插入、遍历和修改等基本操作的掌握。 C语言综合设计题则更全面地考察了链表的运用。可能包括创建...
### 如何将两个有序链表合并为一个有序链表 #### 背景与目标 在数据结构的学习中,链表是一种重要的线性结构之一,它由一系列节点组成,每个节点包含数据域和指向下一个节点的指针。有序链表是指链表中的元素按照...
循环链表则是最后一个节点指回第一个节点,形成一个环状结构,常用于实现循环队列等数据结构。 C/C++是实现这些链表操作的常用编程语言,它们提供了指针机制,可以直接操作内存地址,因此处理链表数据结构非常灵活...
根据给定的信息,本文将详细解释以下几个核心知识点:创建单向链表、遍历单向链表、在非递减有序链表中插入元素、逆置链表中的元素、合并两个非递减有序链表使其成为非递增有序链表以及如何将一个链表分解成两个链表...
在这个问题中,我们看到两个有序的字符链表,一个由数字“12cde”组成,另一个由字母“stuvwx”组成,任务是将这两个链表合并成一个新的有序链表。 在解释如何实现这个操作之前,让我们先理解链表的基本概念。链表...
基于C用链表实现建立一个有序链表.........
### 面试题二:寻找链表相交的第一个节点 对于两个链表,可能存在相交的情况,即它们共享一部分节点。为了找到相交的第一个节点,可以先计算出两个链表的长度差,然后让较长的链表先移动这个差值,之后两个链表同时...
**合并两个有序链表**意味着将两个已排序的链表合并成一个新的、同样有序的链表。 #### 代码解析 接下来,我们将逐行解析给定的C语言代码,并解释其工作原理。 1. **宏定义与头文件包含** ```c #define NULL 0 ...
有序链表是数据结构中的一个重要概念,主要用于存储和管理有序的数据序列。在计算机科学中,链表是一种线性数据结构,其中元素不是在物理内存中连续存储,而是通过指针链接。有序链表则是在链表的基础上,保证链表中...
由于链表是有序的,这意味着我们可以采用一种简单而有效的策略来合并它们:比较两个链表的头节点,选择较小的那个作为新链表的头节点,然后递归地处理剩余部分。 以下是一个详细的步骤来解决这个问题: 1. 定义一...
用链表结构的有序表表示某商场家电的库存模型。当有提货或进货时 需要对该链表进行维护。每个工作日结束之后,将该链表中的数据以文 件形式保存,每日开始营业之前,需将以文件形式保存的数据恢复成链 表结构的有序...
有序链表合并算法是计算机科学中的一个重要概念,特别是在数据结构和算法分析中。这个算法的主要目的是将两个或多个已排序的链表合并成一个单一的、有序的链表。在本毕业设计中,该算法被动态地演示,使得学生能够更...
从键盘输入一组整型元素序列,建立链表。要求输入元素递增,如果不递增提示重新输入刚才错误的数据。 实现该链表的遍历。 在该链表中进行顺序查找某一元素,查找成功返回1,否则返回0。 把元素x插入递增有序表中,...
例如,在链表中,`head`指针用于指向链表的第一个节点,而`p1`和`p2`指针用于遍历链表。 五、函数的使用 在C语言中,函数是一种基本的编程单元,可以用于实现各种功能。例如,在链表题目中,使用了三个函数: * `...
### 题目解析:将两个递增的链表合并为一个非递减的链表 #### 一、问题背景与需求分析 本题目要求实现的功能是:输入两个递增的链表,...对于链表的合并,本实现采用了一种简单直观的方法,能够有效地完成合并操作。
在本文中,我们将深入探讨如何将两个无序的链表合并为一个有序链表,同时也会涉及MFC(Microsoft Foundation Classes)的可视化编程技术。在实际的编程环境中,链表是一种常用的抽象数据类型,用于存储一系列元素,...