/* C Program of sorted linked list*/
#include<stdio.h>
#include<stdlib.h>
struct node
{
int info;
struct node *link;
};
struct node *insert_s(struct node *start,int data);
void search(struct node *start,int data);
void display(struct node *start);
main()
{
int choice,data;
struct node *start=NULL;
while(1)
{
printf("1.Insert\n");
printf("2.Display\n");
printf("3.Search\n");
printf("4.Exit\n");
printf("Enter your choice : ");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("Enter the element to be inserted : ");
scanf("%d",&data);
start=insert_s(start,data);
break;
case 2:
display(start);
break;
case 3:
printf("Enter the element to be searched : ");
scanf("%d",&data);
search(start,data);
break;
case 4:
exit(1);
default:
printf("Wrong choice\n");
}/*End of switch*/
}/*End of while*/
} /*end of main */
struct node *insert_s(struct node *start,int data)
{
struct node *p,*tmp;
tmp=(struct node *)malloc(sizeof(struct node));
tmp->info=data;
/*list empty or new node to be added before first node*/
if(start==NULL || data<start->info)
{
tmp->link=start;
start=tmp;
return start;
}
else
{
p=start;
while(p->link!=NULL && p->link->info < data)
p=p->link;
tmp->link=p->link;
p->link=tmp;
}
return start;
}/*End of insert()*/
void search(struct node *start,int data)
{
struct node *p;
int pos;
if(start==NULL || data < start->info)
{
printf("%d not found in list\n",data);
return;
}
p=start;
pos=1;
while(p!=NULL && p->info<=data)
{
if(p->info==data)
{
printf("%d found at position %d\n",data,pos);
return;
}
p=p->link;
pos++;
}
printf("%d not found in list\n",data);
}/*End of search()*/
void display(struct node *start)
{
struct node *q;
if(start==NULL)
{
printf("List is empty\n");
return;
}
q=start;
printf("List is :\n");
while(q!=NULL)
{
printf("%d ",q->info);
q=q->link;
}
printf("\n");
}/*End of display() */
1.Insert
2.Display
3.Search
4.Exit
Enter your choice : 1
Enter the element to be inserted : 12
1.Insert
2.Display
3.Search
4.Exit
Enter your choice : 1
Enter the element to be inserted : 13
1.Insert
2.Display
3.Search
4.Exit
Enter your choice : 2
List is :
12 13
1.Insert
2.Display
3.Search
4.Exit
Enter your choice : 3
Enter the element to be searched : 77
77 not found in list
1.Insert
2.Display
3.Search
4.Exit
Enter your choice : 4
Press any key to continue . . .
First understand the algorithm carefully. Then study the program line-by-line and compare it with the output. Finally, review the explanation section to strengthen your logic and programming understanding.
Rewrite the program without looking at the code. Modify values, conditions or logic and run it again. This helps improve confidence and strengthens coding skills much faster.