Advertisement
ZinedinZidan

singlylinkedlist

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