Advertisement
SabirSazzad

Link list another syntex (add,delete,search)

Feb 26th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct Node
  5. {
  6.     int data;
  7.     Node *link;
  8. };
  9. Node *head = NULL;
  10. Node *getnewnode(int data)
  11. {
  12.     Node *newnode = new Node();
  13.     (*newnode).data = data;
  14.     (*newnode).link = NULL;
  15.     return newnode;
  16. }
  17. void InsertHead(int data)
  18. {
  19.     Node *newnode = getnewnode(data);
  20.     (*newnode).link = head;
  21.     head = newnode;
  22. }
  23. void InsertTail(int data)
  24. {
  25.     Node *newnode = getnewnode(data);
  26.     Node *temp = head;
  27.     while((*temp).link != NULL)
  28.     {
  29.         temp = (*temp).link;
  30.     }
  31.     (*temp).link = newnode;
  32. }
  33. void InsetAnyPosition(int index, int data)
  34. {
  35.     Node *newnode = getnewnode(data);
  36.     if(index==1)
  37.     {
  38.         (*newnode).link = head;
  39.         head = newnode;
  40.     }
  41.     else
  42.     {
  43.         Node *temp = head;
  44.         int i;
  45.         for(i=1; i<index-1; i++)
  46.         {
  47.             temp = (*temp).link;
  48.         }
  49.         (*newnode).link = (*temp).link;
  50.         (*temp).link = newnode;
  51.     }
  52.  
  53. }
  54. void DeleteAnyIndex(int index)
  55. {
  56.     Node *temp = head;
  57.     if(index==1)
  58.     {
  59.         head = (*temp).link;
  60.         delete temp;
  61.     }
  62.     else
  63.     {
  64.         int i;
  65.         for(i=1; i<index-1; i++)
  66.         {
  67.             temp = (*temp).link;
  68.         }
  69.         Node *temp2 = (*temp).link;
  70.         (*temp).link = (*temp2).link;
  71.         delete temp2;
  72.     }
  73. }
  74. void Search(int data)
  75. {
  76.     Node *temp = head;
  77.     while((*temp).link != NULL)
  78.     {
  79.         if((*temp).data == data)
  80.         {
  81.             cout << "Found" <<endl;
  82.             return;
  83.         }
  84.         temp = (*temp).link;
  85.     }
  86.     if((*temp).data == data)
  87.     {
  88.         cout << "Found"<<endl;
  89.     }
  90.     else
  91.     {
  92.         cout << "Not Found" <<endl;
  93.     }
  94.  
  95. }
  96. void print()
  97. {
  98.     Node *temp = head;
  99.     cout << "Link list data....." << endl;
  100.     while((*temp).link != NULL)
  101.     {
  102.         cout << (*temp).data << " ";
  103.         temp = (*temp).link;
  104.     }
  105.     cout << (*temp).data <<endl;
  106. }
  107. int main()
  108. {
  109.     int data,limit,i,del,value;
  110.     cout << "Input size of link list: ";
  111.     cin >> limit;
  112.     for(i=1; i<=limit; i++)
  113.     {
  114.         cout << "Input data: ";
  115.         cin >> data;
  116.         InsetAnyPosition(i,data);
  117.  
  118.     }
  119.     print();
  120.     cout << "Delete index: ";
  121.     cin >> del;
  122.     DeleteAnyIndex(del);
  123.     print();
  124.     cout << "Input data for Search: ";
  125.     cin >> value;
  126.     Search(value);
  127.     return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement