Advertisement
Nayeemzaman

doublylink

Feb 12th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.89 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. typedef struct mylist
  4. {
  5.     int data;
  6.     struct mylist *next;
  7.     struct mylist *prev;
  8. }node;
  9.  
  10. void insert(node *p, int data){
  11.     while(p -> next != NULL){
  12.         p = p -> next;
  13.     }
  14.     p -> next = (node *)malloc(sizeof(node));
  15.     p -> next -> prev = p;
  16.     p -> next -> data = data;
  17.     p -> next -> next = NULL;
  18. }
  19.  
  20. int search(node *p, int key){
  21.     p = p -> next;
  22.     while(p != NULL){
  23.         if(p -> data == key){
  24.             return 1;
  25.         }
  26.     p = p -> next;
  27.     }
  28.     return 0;
  29. }
  30.  
  31. void delete(node *p, int data){
  32.     while(p -> next != NULL)
  33.     {
  34.         if(p -> next -> data == data)
  35.         {
  36.             p -> next = p -> next -> next;
  37.             p -> next -> prev = p;
  38.             free(p -> next);
  39.             return 0;
  40.         }
  41.     }
  42.  
  43. }
  44.  
  45. void display(node *p)
  46. {
  47.     while(p -> next != NULL)
  48.     {
  49.         printf("%d\n",p -> next -> data);
  50.         p = p -> next;
  51.     }
  52. }
  53. int main(){
  54.  
  55.  
  56.     node *start = (node *)malloc(sizeof(node));
  57.     start -> next = NULL;
  58.     start -> prev = NULL;
  59.  
  60.     printf("1. Insert\n");
  61.     printf("2. Delete\n");
  62.     printf("3. Print\n");
  63.     printf("4. Search\n");
  64.  
  65.     while(1){
  66.         int query, data;
  67.         scanf("%d",&query);
  68.  
  69.         switch(query){
  70.             case 1:
  71.             scanf("%d",&num);
  72.            
  73.             insert(start,data);
  74.             break;
  75.  
  76.             case 2:
  77.             scanf("%d",&data);
  78.             delete(start,data);
  79.             break;
  80.  
  81.             case 3:
  82.             printf("The list is ");
  83.             display(start);
  84.             printf("\n");
  85.             break;
  86.  
  87.             case 4:
  88.             scanf("%d",&data);
  89.             int status = search(start,data);
  90.  
  91.                 if(status)
  92.                     printf("Element Found\n");
  93.                 else
  94.                     printf("Element Not Found\n");
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement