Hello friends!!!!!
Linear search in Doubly Linked List
#include <stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node *left;
struct Node *right;
}Node;
Node * create_node(int data){
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode ->left = NULL;
newNode->right = NULL;
return newNode;
}
void insert(Node **head, int data){
Node *newNode = create_node(data);
if(*head == NULL){
*head = newNode;
return ;
}
Node temp = head;
while(temp -> right != NULL){
temp = temp -> right;
}
temp -> right = newNode;
newNode -> left = temp;
}
void display(Node *head){
Node *temp = head;
while(temp -> right != NULL ){
printf("%d ", temp -> data);
temp = temp -> right;
}
printf("\n");
}
int search(Node **head, int value){
Node *temp;
temp = *head;
while(temp != NULL){
if(temp->data == value){
break;
}
temp = temp -> right;
}
if(temp!=NULL){
printf("Element exist\n");
}
else{
printf("Not exist\n");
}
}
int main(){
Node *head = NULL;
insert(&head, 10);
insert(&head, 20);
insert(&head, 30);
insert(&head, 40);
insert(&head, 50);
insert(&head, 60);
display(head);
search(&head, 90); //Prints Not Exist
}