Тема: Вставити елементи довільного списку L2 в упорядкований L1 так, щоб L1
Умова: Розробити програму, яка створює списки L1 і L2, елементами яких є цілі числа (елементи у списку L1 у порядковані за неспаданням, а у списку L2 розміщені довільно). Вставляє елементи списку L2 у L1 так, щоб L1 залишився упорядкованим. Виводить модифікований список L1.
Незнаю, чому не працює, вроді все правильно
#include <stdio.h>
#include <string.h>
typedef struct list {
int inf;
struct list *next;
} L1;
void input_L1(L1 *st)
{
L1 *pt = NULL, *q = NULL;
int n, i;
printf("Enter N = "); scanf("%d", &n);
for (i = 0; i < n; i++)
{
q = (L1*)calloc(1, sizeof(L1));
printf("Next: "); scanf("%d", &(q -> inf));
q -> next = NULL;
if (st == NULL) st = q;
else pt -> next = q;
pt = q;
}
}
void insert (L1 *st1, L1 *st2)
{
L1 *pt1, *q = NULL, *pt2 = st2;
while (pt2 != NULL)
{
pt1 = st1;
while ((pt1 -> next -> inf) < (pt2 -> inf))
pt1 = pt1 -> next;
q = (L1*)calloc(1, sizeof(L1));
q = pt2;
q -> next = pt1 -> next;
pt1 -> next = q;
pt2 = pt2 -> next;
}
}
void main ()
{
L1 *st1 = NULL, *st2 = NULL, *pt1 = NULL, *q = NULL;;
printf("List 1\n-------------\n");
input_L1(st1);
printf("\nList 2\n-------------\n");
input_L1(st2);
insert(st1, st2);
pt1 = st1;
while(pt1 != NULL)
{
printf("%d ", *(pt1 -> inf));
q = pt1;
pt1 = pt1 -> next;
free(q);
}
}