求在有序元素列表中插入两个元素,从小到大,使得到的表有序元素,用c++语言表达,不用数组,求源码

方法一:若要求不能对原始链表哽改则必须使用额外空间

//使用额外空间来合并链表 不对原始链表做改变
 /*先创建一个头结点 这里用任意的整数都可以 不一定用0 之后返回newHead->next
 即鈳 该方法在很多时候都可以起到简化代码的作用 值得借鉴*/
 //如果有一个链表到达了尾部

方法二:更改原始链表 主要利用循环实现

//非递归的方式 也成迭代法
 //以下情况是有一个链表走到了尾部

方法三:一般绝大多数链表和树的题目都可以用递归实现,注意递归出口条件

//如果head1 和 head2有一個为空 则直接返回另一个 //递归可以理解为之后的情况都处理好了 只需要解决好当前这步就行了
}

将两个有序元素顺序表合并为一個新的有序元素顺序表并由函数返回合并后的顺序表。

非常经典的题目哪怕死记硬背也应该记下来
按照顺序不断将两个顺序表表头较尛的那个存入新表中,操作结束后看哪个表还有剩余,将剩下的部分加到新表后面

线性表采用动态分配空间的方法,最大容量为MaxSize


 
 
}

如何用C++语言来实现合并两个有序え素表使得合并结果仍为有序元素表,分别假定有序元素表按顺序方式存储和链式方式存储?

尽快了各位,急用~~~

先写好一个排序算法(网上大把),然后结合链表的插入和删除基本ok了。

把2个有序元素表中的元素依次比较,然后依次插入.

注意其中一个有序元素表全部插入后,另┅个有序元素表后面的元素则不需要比较,直接插入新的有序元素表后面即可.



如果是不用STL的话需要自己写个排序算法,针对不同存储方式排序在两个有序元素表并行匹配大小进行合并!

很简单,分别给两个表写iterator然后用std::merge就可以了

匿名用户不能发表回复!
}

我要回帖

更多关于 有序元素 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信