Home / C Programs / C Program to Search for an Element in the Linked List without using Recursion

C Program to Search for an Element in the Linked List without using Recursion

C Program to Search for an Element in the Linked List without using Recursion : This , using iteration, searches for an element in a linked list. A linked list is an ordered set of data elements, each containing a link to its successor.

Here is the source code of the C program to search for an element in a linked list. The C program is successfully compiled and run on a Linux system.

#include <stdio.h>

#include <stdlib.h>

 

struct node

{

    int a;

    struct node *next;

};

 

void generate(struct node **, int);

void search(struct node *, int);

void delete(struct node **);

 

int main()

{

    struct node *head = NULL;

    int key, num;

 

    printf("Enter the number of nodes: ");

    scanf("%d", &num);

    printf("\nDisplaying the list\n");

    generate(&head, num);

    printf("\nEnter key to search: ");

    scanf("%d", &key);

    search(head, key);

    delete(&head);

 

    return 0;

}

 

void generate(struct node **head, int num)

{

    int i;

    struct node *temp;

 

    for (i = 0; i < num; i++)

    {

        temp = (struct node *)malloc(sizeof(struct node));

        temp->a = rand() % num;

        if (*head == NULL)

        {

            *head = temp;

            temp->next = NULL;

        }

        else

        {

            temp->next = *head;

            *head = temp;

        }

        printf("%d  ", temp->a);

    }

}

 

void search(struct node *head, int key)

{

    while (head != NULL)

    {

        if (head->a == key)

        {

            printf("key found\n");

            return;

        }

        head = head->next;

    }

    printf("Key not found\n");

}

 

void delete(struct node **head)

{

    struct node *temp;

 

    while (*head != NULL)

    {

        temp = *head;

        *head = (*head)->next;

        free(temp);

    }

}

OUTPUT :

Enter the number of nodes: 10
 
Displaying the list
3  6  7  5  3  5  6  2  9  1  
Enter key to search: 2
key found

Hope this helps. In case of any query feel free to ask.

About Mr Coder

Well, I am software programmer and love to code. My hobbies is to do Hacking, Coding, Blogging, Web Designing and playing online games. Feel free to contact me at shiviskingg@gmail.com or lokesh@hackingloops.com

Check Also

C Program to solve Knapsack Problem using Greedy Algorithm

C Program to solve Knapsack Problem using Greedy Algorithm : Below you can find how …

Leave a Reply

Your email address will not be published. Required fields are marked *