将两个顺序表的合并为顺序表
2015-04-21 11:47
155 查看
#include<iostream>
using namespace std;
const int x=100;
const int y=100;
const int z=200;
void main(){
int a[x]; int b[y]; int c[z];
int i,j,k,m,n;
cout<<"请输入数组A的长度";
cin>>m;
la:for(i=0;i<m;i++)
cin>>a[i];
for(i=1;i<m;i++){
if(a[i]<a[i-1]){
cout<<"error";
goto la;
}
}
cout<<"请输入数组B的长度";
cin>>n;
lb:for(j=0;j<n;j++)
cin>>b[j];
for(j=1;j<n;j++){
if(b[j]<b[j-1]){
cout<<"error";
goto lb;
}
}
cout<<"合并表";
i=j=k=0;
while(i<m&&j<n){
if(a[i]<b[j]){
c[k]=a[i];
i++;
k++;
}
else{
c[k]=b[j];
j++;
k++;
}
}
while(i<m){ //将没遍历完的A添加到数组中
c[k]=a[i];
i++;
k++;
}
while(j<n){ //添加B
c[k]=b[j];
j++;
k++;
}
cout<<"合并后的顺序表是:"<<endl;
for(k=0;k<m+n;k++){
cout<<c[k]<<""<<endl;
}
}
using namespace std;
const int x=100;
const int y=100;
const int z=200;
void main(){
int a[x]; int b[y]; int c[z];
int i,j,k,m,n;
cout<<"请输入数组A的长度";
cin>>m;
la:for(i=0;i<m;i++)
cin>>a[i];
for(i=1;i<m;i++){
if(a[i]<a[i-1]){
cout<<"error";
goto la;
}
}
cout<<"请输入数组B的长度";
cin>>n;
lb:for(j=0;j<n;j++)
cin>>b[j];
for(j=1;j<n;j++){
if(b[j]<b[j-1]){
cout<<"error";
goto lb;
}
}
cout<<"合并表";
i=j=k=0;
while(i<m&&j<n){
if(a[i]<b[j]){
c[k]=a[i];
i++;
k++;
}
else{
c[k]=b[j];
j++;
k++;
}
}
while(i<m){ //将没遍历完的A添加到数组中
c[k]=a[i];
i++;
k++;
}
while(j<n){ //添加B
c[k]=b[j];
j++;
k++;
}
cout<<"合并后的顺序表是:"<<endl;
for(k=0;k<m+n;k++){
cout<<c[k]<<""<<endl;
}
}
相关文章推荐
- 顺序表的创建,插入,删除,查找,逆序以及合并两个有序的顺序表
- 动态构建顺序表,合并两个顺序表(C语言)
- 构造顺序表--合并两个按元素从小到大排列的顺序表
- 算法:给定两个已从小到大排好序的整型数组arrA和arrB,将两个数组合并成arrC,使得arrC也要按从小到大的顺序排好序
- 两个顺序表首尾相接(合并)的方法
- 基于顺序表的两个非递减有序表的合并
- 合并两个顺序链表
- 将两个有序顺序表合并成一个新的有序顺序表
- 用Java实现线性表中的顺序存储的学习和源码(合并两个线性表)
- 实现两个链表的合并 可变长顺序表设计 数据结构
- C语言实现合并两个有序(从小到大)顺序表为一个顺序表
- 合并两个顺序表
- 链表操作:按值的顺序从小到大, 合并两个链表
- c++ 合并两个无序顺序表使其仍无序
- 有两个磁盘文件“A"和”B",各存放一行字母,先要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C"中去。
- 合并两个单链表,要求有顺序
- 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并 (按字母顺序排列), 输出到一个新文件C中
- 顺序表的应用举例(顺序表A和顺序表B的元素都是非递减排列,利用顺序表的基本运算,将它们合并成一个顺序表C,要求C也是非递减序列。)
- 数据结构与算法_合并两个排好顺序的链表或数组
- 两个多项式相乘后合并同类项并以指数从低到高顺序排序并打印C语言