【都还有一些不完美的地方,比如说代码重复性较高的问题,待改正】
目录
一、线性表的合并
1.问题描述
2.算法步骤
①算法
②时间复杂度
3.代码实现
import java.util.Scanner;
//线性表的合并
public class listUnion {
public int size;//定义固定表的初始大小
public int[] La ;
public int[] Lb ;
Scanner in = new Scanner(System.in);
int La_len= in.nextInt();//输入La要存入的元素个数,即表长
int Lb_len= in.nextInt();//输入Lb要存入的元素个数,即表长
public listUnion() {
this(100);
}
public listUnion(int size) {//初始化线性表
La = new int[size];
Lb = new int[size];
for(int j=0;j<La_len;j++) {
La[j]=-1;
}
for(int i=0;i<Lb_len;i++) {
Lb[i]=-1;
}
}
public void addNode() {
Scanner on = new Scanner(System.in);
System.out.print("La表的元素有:");
for(int j=0;j<La_len;j++) {
La[j]=on.nextInt();
System.out.print(La[j]+" ");
}
System.out.print("\r");
System.out.print("Lb表的元素有:");
for(int i=0;i<Lb_len;i++) {
Lb[i]=on.nextInt();
System.out.print(Lb[i]+" ");
}
System.out.print("\r");
}
public void addAll() {//将La,Lb合并成Lc
for(int k=0;k<Lb_len;k++) {
int e = Lb[k];
for(int t=0;t<La_len;t++) {
if(e!=La[t]) {
if(t==La_len-1) {
La_len++;
La[La_len-1]=e;
break;
}
}else {
break;
}
}
}
for(int j=0;j<La_len;j++) {
System.out.print(La[j]+" ");
}
}
public static void main(String[] args) {
listUnion L = new listUnion();
L.addNode();
System.out.print("合并后:");
L.addAll();
}
}