Two linked lists are having information of the same type in ascending order. Write down a module to merge them to a single linked list that is sorted
merge(struct node *p, struct node *q, struct **s)
{
struct node *z;
z = NULL;
if((x= =NULL) && (y = =NULL))
return;
while(x!=NULL && y!=NULL)
{
if(*s= =NULL)
{
*s=(struct link *)malloc(sizeof(struct node *z));
z=*s;
}
else
{
z-->link=(struct link *)malloc(sizeof(struct node *));
z=z-->link;
}
if(x-->data < y-->data)
{
z-->data=x-->data;
x=x-->link;
}
else if(x-->exp > y-->exp)
{
z-->data=y-->data;
y=y-->link;
}
else if(x-->data= =y-->data)
{
z-->data=y-->data;
x=x-->link;
y=y-->link;
}
}
while(x!=NULL)
{
z link = struct link *malloc(sizeof(struct node *));
z=z link;
z-->data=x-->data;
x=x-->link;
}
while(y!=NULL)
{
z link = struct link *malloc(sizeof(struct node *));
z=z link;
z-->data=y-->data;
y=y-->link;
}
z-->link=NULL;
}