time limit: 100ms memory limit: 800k
已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a、b表裡所有元素,並且c表仍然保持有序。
輸入分為三行:
第一行輸入m、n(1<=m,n<=10000)的值,即為表a、b的元素個數;
第二行輸入m個有序的整數,即為表a的每乙個元素;
第三行輸入n個有序的整數,即為表b的每乙個元素;
輸出為一行,即將表a、b合併為表c後,依次輸出表c所存放的元素。
5 31 3 5 6 9
2 4 10
1 2 3 4 5 6 9 10
#include
#include
#include
#define max 10000002
using namespace std;
typedef struct
sq;void initlist(sq *l,sq *m,sq *z)
l->length = 0;
m->elem = (int *)malloc(max*4);
if( !m->elem )
m->length = 0;
z->elem = (int *)malloc(max*4);
if( !z->elem )
z->length = 0;
}void create(sq *l, int n, sq *m, int m)
l->length = n;
for(i = 0;i < m; i++)
m->length = m;
}void caozuo(sq *l,sq *m,sq *z)
else if(l->elem[i] > m->elem[j])
else
}while(i < l->length)
while(j < m->length)
z->length = m->length+l->length;
}void display(sq *z)
}int main()
{int n,m;
sq l;
sq m;
sq z;
scanf("%d %d",&n,&m);
initlist(&l,&m,&z);
create(&l, n, &m, m);
caozuo(&l, &m, &z);
display(&z);
這是用順序表做的,雖然很麻煩,但是還是必會的東西。
**菜鳥,若有錯誤,請多包涵!!
順序表應用5 有序順序表歸併
已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有元素,並且c表仍然保持有序。輸入分為三行 第一行輸入m n 1 m,n 10000 的值,即為表a b的元素個數 第二行輸入m個有序的整數,即為表a的每乙個元素 第三行輸入n個有序的...
順序表應用5 有序順序表歸併
time limit 100ms memory limit 800k 有疑問?點這裡 已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有元素,並且c表仍然保持有序。輸入分為三行 第一行輸入m n 1 m,n 10000 的值,即為表...
順序表應用5 有序順序表歸併
time limit 100ms memory limit 800k 已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有元素,並且c表仍然保持有序。輸入分為三行 第一行輸入m n 1 m,n 10000 的值,即為表a b的元素個數...