57 lines
1.2 KiB
C
57 lines
1.2 KiB
C
|
// Let list1 = (x1, x2…..xn) and list2= (y1, y2…..ym). Write a function to merge list1 and
|
||
|
// list2 to obtain list3 = (x1, y1, x2, y2….xm,ym,xm+1…xn) for m<=n; and list3=(x1,
|
||
|
// y1,x2,y2…..xn, yn, xn+1….xm) for m>n.
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
#define MAX_SIZE 100
|
||
|
|
||
|
void merge_lists(int list1[], int n, int list2[], int m, int list3[]) {
|
||
|
int i = 0, j = 0, k = 0;
|
||
|
|
||
|
while (i < n && j < m) {
|
||
|
list3[k++] = list1[i++];
|
||
|
list3[k++] = list2[j++];
|
||
|
}
|
||
|
|
||
|
while (i < n) {
|
||
|
list3[k++] = list1[i++];
|
||
|
}
|
||
|
|
||
|
while (j < m) {
|
||
|
list3[k++] = list2[j++];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
int main() {
|
||
|
int list1[MAX_SIZE], list2[MAX_SIZE], list3[MAX_SIZE * 2];
|
||
|
int n, m, i;
|
||
|
|
||
|
printf("Enter the number of elements in list1: ");
|
||
|
scanf("%d", &n);
|
||
|
|
||
|
printf("Enter the elements of list1:\n");
|
||
|
for (i = 0; i < n; i++) {
|
||
|
scanf("%d", &list1[i]);
|
||
|
}
|
||
|
|
||
|
printf("Enter the number of elements in list2: ");
|
||
|
scanf("%d", &m);
|
||
|
|
||
|
printf("Enter the elements of list2:\n");
|
||
|
for (i = 0; i < m; i++) {
|
||
|
scanf("%d", &list2[i]);
|
||
|
}
|
||
|
|
||
|
merge_lists(list1, n, list2, m, list3);
|
||
|
|
||
|
printf("Merged list:\n");
|
||
|
for (i = 0; i < n + m; i++) {
|
||
|
printf("%d ", list3[i]);
|
||
|
}
|
||
|
printf("\n");
|
||
|
|
||
|
return 0;
|
||
|
}
|