题目
从线性表Lb中依次取得每个数据元素,并依值在线性表La中进行查访,
若不存在则插入之
示例输入:La = {2, 4, 7, 8, 10, 12};
Lb = {3, 7, 13};
示例输出: La = {2, 4, 7, 8, 10, 12, 3, 13};
代码
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int *CreateDynamicArray(int *p, int arrayLength);
int Compare(int array[], int value, int length);
int main(int argv,char *argc[]){
int *La, *Lb;
int La_Length, Lb_Length;
bool Perform;
printf("Please input La_Length: ");
scanf("%d", &La_Length);
printf("Please input La_array: ");
La = CreateDynamicArray(La, La_Length);
printf("Please input Lb_Length: ");
scanf("%d", &Lb_Length);
printf("Please input Lb_array: ");
Lb = CreateDynamicArray(Lb, Lb_Length);
printf("Brfore Insert: \n");
printf("La: ");
for (int i = 0; i < La_Length; i++){
printf("%d ", La[i]);
}
printf("\n");
printf("Lb: ");
for (int i = 0; i < Lb_Length; i++){
printf("%d ", Lb[i]);
}
printf("\n");
printf("After Insert: \n");
int location = 0;
for (int i = location; i < Lb_Length; i++){
Perform = Compare(La, Lb[i], La_Length);
if (Perform == true){
La_Length += 1;
La = (int *)realloc(La, La_Length*sizeof(int));
La[La_Length - 1] = Lb[i];
location += 1;
}else{
continue;
}
}
printf("La: ");
for (int i = 0; i < La_Length; i++){
printf("%d ", La[i]);
}
free(La);
free(Lb);
return 0;
}
int *CreateDynamicArray(int *p, int arrayLength){
int c;
p = (int *)malloc(arrayLength*sizeof(int));
for(int i = 0;i < arrayLength; i++)
{
scanf("%d", &c);
p[i] = c;
}
return p;
}
int Compare(int array[], int value, int length){
bool Judge = true;
for (int i = 0; i < length; i++){
if (array[i] == value){
Judge = false;
break;
}
}
return Judge;
}