C Program to perform Searching in a linked list

C Program for Search in Linked List

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
struct node{
	int data;
	struct node *next;
	};
struct node *head=NULL;
struct node* createNode(){
	struct node *newNode = (struct node *)malloc(sizeof(struct node));
	return (newNode);
	}
void insertNode(){
struct node *temp,*ptr;
    temp=createNode();
    printf("enter the data you want to insert:");
    scanf("%d",&temp->data);
    temp->next=NULL;
    if(head==NULL)
        head=temp;
    else{
        ptr=head;
        while(ptr->next!=NULL){
            ptr=ptr->next;
        }
        ptr->next=temp;
    }
}

void search(){
	struct node *temp;
	int data,i=0,flag;
	temp=head;
	if(temp==NULL)
		printf("Linked List is empty");
	else{
		printf("Enter the data you want to search:");
		scanf("%d",&data);
		while(temp!=NULL){
			if(temp->data==data){
				printf("Value founded at location %d " ,i+1);
				flag=0;
				break;
			}
			else{
				flag=1;
			}
			i++;
			temp=temp->next;
		}
		if(flag==1){
			printf("value not found\n");
		}

	}
}
int menu(){
	int choice;
	printf("\n 1.Add value to the list");
	printf("\n 2.Search an element in List");
	printf("\n 3.exit");
	printf("\n Please enter your choice: \t");
	scanf("%d",&choice);
	return(choice);
}
void main(){
          while(1){
		switch(menu()){
			case 1:
				insertNode();
				break;
			case 2:
				search();
			        break;
			case 3:
				exit(0);
			default:
				printf("invalid choice");
		      }
		getch();
	 }
}

Output:


Share on