//有序顺序表的合并
public class Test2 {
public static void main(String[] args) {
B len=new B();
len.merge();
}
}
class A{
int elem[];
int length;
A(){
elem=new int[100];
length=0;
}
void display()//遍历
{
for(int i=0;iSystem.out.print(elem[i]+" ");
}
System.out.print(" ");
}
}
class B{
A a,b,c;//定义3个顺序表
B(){
}
Scanner scanner = new Scanner(System.in);
void merge(){
int i=0;
int j=0;
A a=new A();
System.out.println("请输入a顺序表的长度:");
int value1=scanner.nextInt();
a.length=value1;
System.out.println("请输入顺序表a的"+value1+"个元素:");
for(int x=0;x//Scanner scanner = new Scanner(System.in);
a.elem[x]= scanner.nextInt();
}
a.display();
A b=new A();
System.out.println("请输入b顺序表的长度:");
int value2=scanner.nextInt();
b.length=value2;
System.out.println("请输入顺序表b的"+value2+"个元素:");
for(int y=0;y[y]= scanner.nextInt();
}
b.display();
A c=new A();
c.length=a.length+b.length;
int k=0;
while (i<=a.length&&b.length>=j){
if(a.elem[i]>b.elem[j]){
c.elem[k++]=b.elem[j++];
}else{
c.elem[k++]=a.elem[i++];
}
}
while(i//a顺序表更长。将a顺序表中的元素加到c中
c.elem[k]=a.elem[i];
i++;
k++;
}
while(j//b顺序表更长。将b顺序表中的元素加到c中
c.elem[k]=b.elem[j];
j++;
k++;
}
c.display();
System.out.print(" ");
}
}
编译过程如下:
请输入a顺序表的长度:
3
请输入顺序表a的3个元素:
5
7
7
5 7 7 请输入b顺序表的长度:
2
请输入顺序表b的2个元素:
3
8
3 8 3 5 7 7 0