# include <stdio.h>;
# include <alloc.h>;
# include <conio.h>;
struct nod{int util; struct nod * next;};
typedef struct nod NOD;
typedef NOD * NOD_PTR;
int n,m,i,val;
NOD_PTR first1,first2,p,q;
NOD * sl_ins(int n)
{
NOD * first;
//Creare primul nod
i=1;
printf("a[%d]=",i);
scanf("%d",&val);
first=NULL;
first=(NOD_PTR)malloc(sizeof(NOD));
first->util=val;
first->next=NULL;
//Inserarea celorlalte numere
for(i=2;i<=n;i++)
{
//Citire valoare
printf("a[%d]=",i);
scanf("%d",&val);
//Determinare pozitie si legarea in lista
p=first;
while((p->next!=NULL)&&(p->next->util<val))
{
p=p->next;
}
//Cream un nou nod(var dinamica), dupa ce i-am determinat pozitia (p->next)
q=(NOD_PTR) malloc(sizeof(NOD));
q->util=val;
q->next=NULL;
if(val<p->util)
{
q->next=p;
first=q;
}
else
{
q->next=p->next;
p->next=q;
}
}
return first;
}
void afis(NOD * first)
{
//Afisam lista sortata prin inserare
printf("\nAfisam lista:\n");
p=first;
while(p!=NULL)
{
printf("%d ",p->util);
p=p->next;
}
}
void main(void)
{
clrscr();
printf("Intr nr de elemente din prima lista: ");
scanf("%d",&n);
printf("Intr nr de elemente din a doua lista: ");
scanf("%d",&m);
first1=sl_ins(n);
first2=sl_ins(m);
afis(first1);
printf("\n");
afis(first2);
getche();
}
Niciun comentariu:
Trimiteți un comentariu