[cpp] LAB5fin

Viewer

  1.  
  2.  
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. struct Node 
  7. {
  8.     int data;               
  9.     Node  *next;
  10. };
  11. void insertNodeBeg(Node* head, int data); 
  12. void getOddNumber(Node* odd, Node* head);
  13. void displayList(Node* head);
  14. void insertNodeEnd(Node* head, int data);
  15. void sortList(Node* head);
  16. void change(Node* head, int data, int x);
  17. int main()
  18. {
  19.     Node* head;
  20.     head = new Node;
  21.     head ->data = 3;
  22.     head->next = NULL;
  23.     insertNodeEnd(head, 7);
  24.     insertNodeEnd(head, 11);
  25.     insertNodeEnd(head, 9);
  26.     insertNodeEnd(head, 1);
  27.     insertNodeEnd(head, 2);
  28.     insertNodeEnd(head, 3);
  29.     insertNodeEnd(head, 7);
  30.     insertNodeEnd(head, 45);
  31.     insertNodeEnd(head, 46);
  32.     cout << "----All List----" << endl;
  33.     displayList(head);
  34.     Node* odd;
  35.     odd = new Node;
  36.     odd->data = 3;
  37.     odd->next = NULL;
  38.     cout << "----Odd List----" << endl;
  39.     getOddNumber(odd, head);
  40.     displayList(odd);
  41.     cout << "----Add Odd Number to the End of the Odd List----" << endl;
  42.     insertNodeEnd(odd, 101);
  43.     displayList(odd);
  44.     cout << "----Add Odd Number to the Top of the Odd List----" << endl;
  45.     insertNodeBeg(odd, 101);
  46.     displayList(odd);
  47.     cout << "----Sort Head List----" << endl;
  48.     sortList(head);
  49.     displayList(head);
  50.     cout << "----Change a Numberr----" << endl;
  51.     change(head, 4513);
  52.     displayList(head);
  53. }
  54.  
  55. void getOddNumber(Node* odd, Node* head)
  56. {
  57.  
  58.     Node* temp;
  59.     temp = head;
  60.     while (temp != NULL)
  61.     {
  62.         if (temp->data % 2 == 1 && temp->data != 3)
  63.         {
  64.             insertNodeEnd(odd, temp->data);
  65.             temp = temp->next;
  66.         }
  67.         else
  68.         {
  69.             temp = temp->next;
  70.         }
  71.     }
  72. }
  73. void displayList(Node* head) 
  74.  
  75. {
  76.     Node* temp;
  77.     temp = head;
  78.     while (temp != NULL)
  79.     {
  80.         cout << temp->data << " -> ";
  81.         temp = temp->next;
  82.     }
  83.     cout << "NULL" << endl<<endl;
  84. }
  85. void insertNodeEnd(Node* head, int data)
  86. {
  87.     if (head == NULL)
  88.     {
  89.         head = new Node;
  90.         head->data = data;
  91.         head->next = NULL;
  92.     }
  93.     else
  94.     {
  95.         Node* tempPtr;
  96.         tempPtr = new Node;
  97.         tempPtr->data = data;
  98.         tempPtr->next = NULL;
  99.         Node* temp;
  100.         temp = head;
  101.         while (temp->next != NULL)
  102.         {
  103.             temp = temp->next;
  104.         }
  105.         temp->next = tempPtr;
  106.     }
  107. }
  108. void insertNodeBeg(Node* head, int data)
  109. {
  110.     head->data = data;
  111. }
  112. void sortList(Node* head) 
  113. {
  114.     Node* temp, *i, *j;
  115.     temp = head;
  116.     int tmp;
  117.     for (= head; i->next != NULL; i = i->next)
  118.     {
  119.         for (= i; j->next != NULL; j = j->next)
  120.         {
  121.             if (i->data > j->data)
  122.             {
  123.                 tmp = i->data;
  124.                 i->data = j->data;
  125.                 j->data = tmp;
  126.             }
  127.         }
  128.     }
  129. }
  130. void replaceDataWithX(Node* head, int data, int x) 
  131. {
  132.     Node* temp;
  133.     temp = head;
  134.     while (temp->next != NULL)
  135.     {
  136.         if (temp->data == data)
  137.         {
  138.             temp->data = x;
  139.             temp = temp->next;
  140.         }
  141.         else
  142.         {
  143.             temp = temp->next;
  144.         }
  145.  
  146.     }
  147. }
  148.  
  149.  

Editor

You can edit this paste and save as new:


File Description
  • LAB5fin
  • Paste Code
  • 24 Mar-2023
  • 3.15 Kb
You can Share it: