Search Element in Linked List

In this article you will see how we can search element in linked list. We will see both iterative and recursive way of doing this.

 

Insertion in linked list : 


#include<iostream>
using namespace std;

class node
{
  public:
  int data;
  node* next;
};

void push(node** head_ref, int new_data)
{
  node* new_node = new node();
  new_node->data = new_data;
  new_node->next = *head_ref;
  *head_ref = new_node;
}

 

Other Resources : Data Structures, Algorithms, Competitive Coding, Development

 

Iterative Searching : 

 

void search(node** head_ref, int key)
{
  int c = 0;
  node *temp = *head_ref;
  if(temp != NULL && temp->data == key)
    cout << "Found position : " << 0;
  else
  {
    while(temp != NULL && temp->data != key)
    {     
      temp = temp->next; 
      c++; 
    }
    cout << "Found position iteratively : " << c;
  }
}

 

Recursive Searching : 

 

void search1(node* head_ref, int key, int c)
{
  if(head_ref->data == key)
  {
    cout << "\nFound position recursively : " << c;
    return;
  }
  return search1(head_ref->next, key, c++);
}

 

Other Resources : Data Structures, Algorithms, Competitive Coding, Development

 

Display :

 

void show(node *Node)
{
  while(Node != NULL)
  {
    cout << Node->data << " ";
    Node = Node->next;
  }
}

 

Main : 

 

int main()
{
  node *head= NULL;
  int n1, n2, n3, n4, ele;
  cin >> n1 >> n2 >> n3 >> n4;
  push(&head, n1);
  push(&head, n2);
  push(&head, n3);
  push(&head, n4);
  show(head);
  cout << "Element to search : ";
  cin >> ele;
  search(&head, ele);
  int c = 0;
  search1(head, ele, c);

  return 0;
}

 

Other Resources : Data Structures, Algorithms, Competitive Coding, Development

No comments:

If you have any doubt or suggestion let me know in comment section.

Powered by Blogger.