- 一个C语言类的题目(帮忙看下)线性表方面的设A和B是两个顺序表,
- 设A和B是两个顺序表,其元素从小到大排列,编写一个将A和B中所有元素组成一个新的从小到大的有序顺序表的算法,要求删除重复的元素
- 思路:依次扫描通过A和B的元素,比较当前的元素的值,将较小值的元素赋给C,如此直到一个线性表扫描完毕,然后将未完的那个顺序表中余下部分赋给C即可。C的容量要能够容纳A、B两个线性表相加的长度。
这就是归并排序。
//我用C++写的程序,不知符合不符合你的要求
#include
//define two arrays
int A[3] = {1,4,8};
int B[4] = {2,4,5,9};
int AppendByOrder(int a[],int b[],int m, int n,int c[])
{
//m indicate the number of a's elements
//also n indicate the number if b 's elements
int total = m + n;
//c = new int[total];
int p = 0;
int q = 0;
for (int i = 0; i < total;i++)
{
if(a[p]