- Name: Elvis Bodeci
- Matricola: A219407109
- Email: elvisbodeci@hotmail.com
Personal Preferences (details in TWikiVariables)
- Horizontal size of text edit box:
- Vertical size of text edit box:
- Optionally write protect your home page: (set it to your WikiName)
if(strcmp("Merge", order)==0){
printf("enter the elments to be inserted in list A(-1 to end)\n");
scanf("%d",&el);
while(el!=-1){
RinsertElemOrd(&A,el);
printlista(A);
scanf("%d",&el);}
printf("enter the elments to be inserted in list B(-1 to end)\n");
scanf("%d",&el);}
while(el!=-1){
RinsertElemOrd(&B,el);
printlista(B);
scanf("%d",&el);}
mergeLista(&C,A,B);
printlista(A);
scanf("%s",order); }
if(strcmp("RinsertOrd",order)==0){
printlista(head);
scanf("%d",&el);
while(el!=-1){
RinsertElemOrd(&head,el);
printlista(head);
scanf("%d", &el);}
scanf("%s",order);
}
void
RinsertElemOrd(Lista*lptr, int val){
Lista new;
if((*lptr)==NULL || (*lptr)->elem>=val){
new=malloc(sizeof(Listanode));
new->elem=val;
new->next=(*lptr);
*lptr=new;}
else
RinsertElemOrd(&(*lptr)->next, val);
}
void mergeLista(Lista*C,Lista A,Lista B){
if(A) (*C)=B;
else if(B) (*C)=A;
else if(A->elem<=B->elem)
{
(*C)=A;
A=A->next;
(*C)->next=NULL;
mergeLista(&(*C)->next, A, B);
}
else if(A->elem>B->elem){
(*C)=B;
B=B->next;
(*C)->next=NULL;
mergeLista(&(*C)->next, A, B);}}
Related topics