Advertisement
hadiuzzaman65

link list operation

Mar 17th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5. typedef struct mylist
  6. {
  7.     int data;
  8.     struct mylist *next;
  9. } node;
  10.  
  11.  
  12. void insertlinklist(node *newnode,int data)
  13. {
  14.     while(newnode->next !=NULL)
  15.     {
  16.         newnode=newnode->next;
  17.     }
  18.     newnode->next=(node*)malloc(sizeof(node));
  19.     newnode->next->data=data;
  20.     newnode->next->next=NULL;
  21. }
  22. void displaylinklist(node *newnode)
  23. {
  24.     while(newnode->next !=NULL)
  25.     {
  26.         cout<< newnode->next->data<<"   ";
  27.         newnode=newnode->next;
  28.     }
  29.     cout<<endl<<endl;
  30. }
  31. void deletenode(node *newnode,int data)
  32. {
  33.     while(newnode->next !=NULL)
  34.     {
  35.         if(newnode->next->data==data)
  36.         {
  37.             newnode->next=newnode->next->next;
  38.         }
  39.         newnode=newnode->next;
  40.     }
  41. }
  42. void deletenodeatindex(node *newnode,int data)
  43. {
  44.     node *s;
  45.     s=newnode;
  46.     if(newnode==NULL)
  47.     {
  48.  
  49.         return;
  50.     }
  51.     if(data==0)
  52.     {
  53.         newnode=s->next;
  54.         free(s);
  55.         return;
  56.     }
  57.     for(int i=0; s !=NULL&&i<data-1; i++)
  58.     {
  59.         s=s->next;
  60.     }
  61.     if(s==NULL ||s->next ==NULL)
  62.     {
  63.         return;
  64.     }
  65.     node *temp;
  66.     temp=s->next->next;
  67.     free(s->next);
  68.     s->next=temp;
  69.  
  70.  
  71. }
  72. void deleteallnode(node *head)
  73. {
  74.     node *temp;
  75.     while(head !=NULL)
  76.     {
  77.         temp=head->next;
  78.         free(head);
  79.         head=temp;
  80.     }
  81.     cout<< "my name is hadiuzzaman"<<endl;
  82.     displaylinklist(head);
  83. }
  84. void foundposition(node *head,int position)
  85. {
  86.     node *temp;
  87.     temp=head;
  88.     int i=0;
  89.     while(temp !=NULL)
  90.     {
  91.         if(position==i)
  92.         {
  93.             cout<< temp->data<<endl;
  94.         }
  95.         temp=temp->next;
  96.         i++;
  97.     }
  98.  
  99. }
  100. int main()
  101. {
  102.     node *head;
  103.     head=(node*)malloc(sizeof(node));
  104.     head->next=NULL;
  105.     insertlinklist(head,4);
  106.     insertlinklist(head,23);
  107.     insertlinklist(head,44);
  108.     insertlinklist(head,88);
  109.     displaylinklist(head);
  110.     deletenode(head,44);
  111.     displaylinklist(head);
  112.     foundposition(head,3);
  113.  
  114.     deletenodeatindex(head,3);
  115.     displaylinklist(head);
  116.     deleteallnode(head);
  117.  
  118.  
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement