合并顺序表,合并后的表元素按从小到大排列
2015-04-09 21:07
169 查看
设有两个整数类型的顺序表A(有m个元素)和B(有n个元素),其元素均以从小到大的升序排列。试编写一个函数,将这两个顺序表合并成一个顺序表C,要求C的元素也以从小到大的升序排列。
合并算法:
void Merge(SeqList<int> &LA, SeqList<int> &LB, SeqList<int> &LC){
int i = 0, j = 0, k = 0, va, vb;
while( i < LA.Length() && j < LB.Length()){
LA.getData(i+1, va);
LB.getData(j+1, vb);
if(va > vb){
LC.Insert(k, vb);
k++;
j++;
}
else{
LC.Insert(k, va);
k++;
i++;
}
}
if(i == LA.Length())
while(j < LB.Length()){
LB.getData(j+1, vb);
LC.Insert(k, vb);
j++;
k++;
}
if(j == LB.Length()){
while(i < LA.Length())
LA.getData(i+1, va);
LC.Insert(k, va);
i++;
k++;
}
return;
}
合并算法:
void Merge(SeqList<int> &LA, SeqList<int> &LB, SeqList<int> &LC){
int i = 0, j = 0, k = 0, va, vb;
while( i < LA.Length() && j < LB.Length()){
LA.getData(i+1, va);
LB.getData(j+1, vb);
if(va > vb){
LC.Insert(k, vb);
k++;
j++;
}
else{
LC.Insert(k, va);
k++;
i++;
}
}
if(i == LA.Length())
while(j < LB.Length()){
LB.getData(j+1, vb);
LC.Insert(k, vb);
j++;
k++;
}
if(j == LB.Length()){
while(i < LA.Length())
LA.getData(i+1, va);
LC.Insert(k, va);
i++;
k++;
}
return;
}
相关文章推荐
- 构造顺序表--合并两个按元素从小到大排列的顺序表
- 顺序表的应用举例(顺序表A和顺序表B的元素都是非递减排列,利用顺序表的基本运算,将它们合并成一个顺序表C,要求C也是非递减序列。)
- [转]STL 之set不允许元素重复,且从小到大排列
- 合并两个链表,两个表的元素交叉进行,合并之后合并后的链表变成空表
- (4)按从小到大的顺序排列数组中的元素
- 合并两个链表,两个表的元素交叉进行,合并之后合并后的链表变成空表
- 把元素递增的线性表La和Lb合并为Lc,且Lc的中的元素递减排列,使用原空间
- 算法与数据结构--实现线性表的合并操作(合并后按非递减排列)
- 合并两个链表,两个表的元素交叉进行,合并之后合并后的链表变成空表
- 运用冒泡排序法-从小到大排列数组中的元素
- 编程分别输入两个按从小到大排序的数组a和b,将这两个有序数组合并,使合并后的数组仍有序 (从小到大)
- 数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列
- 合并两个链表,两个表的元素交叉进行,合并之后合并后的链表变成空表
- Java_数组操作_合并数组,使合并后的数组中不包含重复的元素
- 飛飛(五十五)简单的函数模板,功能是讲数组a中的前size个元素从小到大排列
- 项目-排序函数模板将数组a中的前size个元素按从小到大顺序排列。试设计这个函数模板。
- 合并两个链表,两个表的元素交叉进行,合并之后合并后的链表变成空表
- 算法与数据结构--实现线性表的合并操作(合并后按非递减排列)--算法2.6
- .定义两个数组,首先把两个数组合并成一个新数组,然后把新数组中的所有元素逆序排列,需要实现的效果如图-2所示。
- 合并两个链表,两个表的元素交叉进行,合并之后合并后的链表变成空表