Advertisement
ZinedinZidan

single

Feb 26th, 2020
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct node Node;
  5. struct node
  6. {
  7.     int data;
  8.     Node *next;
  9. };
  10.  
  11. Node *head=NULL;
  12.  
  13. void insertfirst(int data)
  14. {
  15.     Node *newnode=(Node*)malloc(sizeof(Node));
  16.     newnode->data=data;
  17.     newnode->next=head;
  18.     head=newnode;
  19.     return;
  20.  
  21. }
  22.  
  23. void insertmiddle(int n,int data)
  24. {
  25.     Node *temp=head;
  26.     Node *newnode=(Node*)malloc(sizeof(Node));
  27.     newnode->data=data;
  28.     int i;
  29.     for(i=0;i<(n-2);i++)
  30.     {
  31.         temp=temp->next;
  32.     }
  33.     Node *temp1=temp->next;
  34.     temp->next=newnode;
  35.     newnode->next=temp1;
  36.     return;
  37. }
  38.  
  39. void insertlast(int data)
  40. {
  41.     Node *temp=head;
  42.     Node *newnode=(Node*)malloc(sizeof(Node));
  43.     newnode->data=data;
  44.     newnode->next=NULL;
  45.     if(head==NULL)
  46.     {
  47.         head=newnode;
  48.         return;
  49.     }
  50.     while(temp->next!=NULL)
  51.     {
  52.         temp=temp->next;
  53.     }
  54.     temp->next=newnode;
  55.     return;
  56. }
  57.  
  58. void delete(int data)
  59. {
  60.     int i;
  61.     Node *temp=head;
  62.     int count=0;
  63.     while(temp!=NULL)
  64.     {
  65.         count++;
  66.         if(temp->data==data)
  67.         {
  68.             break;
  69.         }
  70.         temp=temp->next;
  71.     }
  72.     if(count==1)
  73.     {
  74.         head=temp->next;
  75.         return;
  76.     }
  77.     Node *temp2=head;
  78.     for(i=0;i<(count-2);i++)
  79.     {
  80.         temp2=temp2->next;
  81.     }
  82.     Node *temp1;
  83.     temp1=temp2->next;
  84.     temp2->next=temp1->next;
  85.     return;
  86. }
  87. void search(int data)
  88. {
  89.     Node *temp=head;
  90.     while(temp!=NULL)
  91.     {
  92.         if(temp->data==data)
  93.         {
  94.             printf("found\n",temp->data);
  95.             break;
  96.         }
  97.         temp=temp->next;
  98.     }
  99.     return;
  100. }
  101. void display()
  102. {
  103.     Node *temp=head;
  104.     while(temp!=NULL)
  105.     {
  106.         printf("%d ",temp->data);
  107.         temp=temp->next;
  108.     }
  109.     printf("\n");
  110. }
  111. int main()
  112. {
  113.     Node *temp=head;
  114.     insertfirst(6);
  115.     insertfirst(5);
  116.     insertfirst(2);
  117.     insertlast(4);
  118.     insertmiddle(2,9);
  119.     display();
  120.     delete(4);
  121.     display();
  122.     search(5);
  123.     display();
  124.     return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement