Merge and Sort two Linked list in C

Problem Statement: Merge and Sort two linked list

/*C code to Merge and Sort two linked list*/
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>


typedef struct linklist link;
struct linklist
{
	int n;
    link *next; 	
};


link *createlist(int a)
{
	link *l1starttt,*temp,*newnode;
	int i;
	for(i=0;i<a;i++)
		{
			if(i==0)
			{
				newnode=(link *)malloc(sizeof(link));			
				l1starttt=newnode;
				newnode->next=NULL;
				temp=newnode;
				printf("enter data");
				scanf("%d",&(newnode->n));
			}
			else 
			{
				newnode=(link *)malloc(sizeof(link));
				newnode->next=NULL;
				temp->next=newnode;
				temp=newnode;
				printf("enter data");
				scanf("%d",&(newnode->n));
			}
		

		}
	return l1starttt;
}


link *mergelist(link *l1,link *l2)
{
	link *l1start=l1;
	while(l1start->next!=NULL)
	{
		l1start=l1start->next;
	}
	l1start->next=l2;

}


link *sort(link *l1)
{	int temp;
	link *l3,*l2;
          l2=l1;
	while(l2!=NULL)
	{
	for(l3=l2;l3!=NULL;l3=l3->next)
	{	
		if(l3->n<l2->n)
		{
			temp=l3->n;
			l3->n=l2->n;
			l2->n=temp;	
		}
		
	}
		l2=l2->next;
	}
}

		
void main()
{
	int n,m;
	printf("Number of elements in first list\t");
	scanf("%d",&n);
	printf("Number of elements in second list\t");
	scanf("%d",&m);
	link *l1start,*l2start;
	l1start=createlist(n);
    l2start=createlist(m);
	mergelist(l1start,l2start);
	sort(l1start);
        /*  printf("\n");
	printf("%d",l1start);
	printf("\n");
          printf("%d",l2start);
        
          while(l1start!=NULL)
	{	
		printf("%d\t",l1start->n);
		l1start=l1start->next;
	}
          printf("\n");
          while(l2start!=NULL)
	{	
		printf("%d\t",l2start->n);
		l2start=l2start->next;
	}*/
         
    printf("\n");
	while(l1start!=NULL)
	{	
		printf("%d\t",l1start->n);
		l1start=l1start->next;
	}
}


$ gcc link1.c
$ ./a.out
Number of elements in first list 3
Number of elements in second list 2
enter data1
enter data7
enter data2
enter data3
enter data41 2 3 4 7
$

also see

C Programming language
Go Programming language
Linked List Array
Simplification Queue
DBMS Reasoning
Aptitude HTML
Previous articleStack
Next articleConcatenate two strings in HTML

LEAVE A REPLY

Please enter your comment!
Please enter your name here