两个升序表,合并生成第三个升序表。
我们使用3个类实现功能。
SxbSX类生成顺序表并遍历打印,如下:
public class SxbSX {
int elem[];
int length;
SxbSX(){ //构造函数
elem=new int [100];
length=0;
}
void display()//遍历
{
for(int i=0;i
SxbHB类是核心代码,开始尝试for实现逐个比较输出到LC,但是失败了。。
public class SxbHB {
//先预定三个顺序表
SxbSX LA,LB,LC;
SxbHB()
{
}
void merge() throws Exception
{
int i=0;
int j=0;
SxbSX LA=new SxbSX();
LA.length=5;
LA.elem[0]=12; LA.elem[1]=23; LA.elem[2]=34; LA.elem[3]=45; LA.elem[4]=56;
SxbSX LB=new SxbSX();
LB.length=5;
LB.elem[0]=1; LB.elem[1]=2; LB.elem[2]=3; LB.elem[3]=4; LB.elem[4]=5;
SxbSX LC=new SxbSX();
LC.length=10;
//发现for循环行不通,有点复杂,不够灵活
int k=0;
while(ij) {
if (LA.elem[i] > LB.elem[j]) {
LC.elem[k++] = LB.elem[j++];
} else {
LC.elem[k++] = LA.elem[i++];
}
}
while(i
demon类是主函数:
public class demo6 {
public static void main(String args[]) throws Exception
{
SxbHB SH=new SxbHB();
SH.merge();
}
}
最后是结果截图:
过程对于我这种菜鸟还有点小困难,不过还是稳畅运行了。



