LINKED LIST CREATION AND SORTING
#include<stdio.h>
#include<conio.h>
typedef struct list
{
int data;
struct list *next;
}node;
node *start=NULL;
node *creat(node*);
node *display(node*);
node *sort_list(node*);
void main()
{
int option;
clrscr();
do
{
printf("\n Main Menu\n");
printf("\n1:Creat list\n");
printf("\n2:Display list\n");
printf("\n3:Sort list\n");
printf("\n0:Exit\n");
printf("\n1:Enter your option\n");
scanf("%d",&option);
switch(option)
{
case 1:start=creat(start);
printf("\nlinked list created");
break;
case 2:start=display(start);
break;
case 3:start=sort_list(start);
printf("\nafter sort list becomes as\n");
break;
case 0:
exit(0);
}
}
while(option!=0);
getch();
}
node *creat(node *start)
{
node *ptr,*newnode;
int num;
printf("Enter data,pres 999 to exit:-");
scanf("%d",&num);
while(num!=999)
{
newnode=(node*)malloc(sizeof(node));
newnode->data=num;
if(start==NULL)
{
newnode->next=NULL;
start=newnode;
}
else
{
ptr=start;
while(ptr->next!=NULL)
ptr=ptr->next;
ptr->next=newnode;
newnode->next=NULL;
}
printf("\nEnter another data:-");
scanf("%d",&num);
}
return start;
}
node* display(node* start)
{
node *ptr;
ptr=start;
while(ptr!=NULL)
{
printf("\%d->",ptr->data);
ptr=ptr->next;
}
return start;
}
node* sort_list(node* start)
{
node *ptr1,*ptr2; int temp;
ptr1=start;
while(ptr1->next!=NULL)
{
ptr2=ptr1->next;
while(ptr2!=NULL)
{
if((ptr1->data)>(ptr2->data))
{
temp=ptr1->data;
ptr1->data=ptr2->data;
ptr2->data=temp;
}
ptr2=ptr2->next;
}
ptr1=ptr1->next;
}
return start;
}
Post a Comment