Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Use the following c++ code and modify it so it inserts 2 numbers and deletes 2 n

ID: 3726702 • Letter: U

Question

Use the following c++ code and modify it so it inserts 2 numbers and deletes 2 numbers #include<iostream> using namespace std; class Node { public: int data; Node* next; Node(int x) { data = x; next = nullptr; } }; class LinkedList { public: Node* head; LinkedList() { head = nullptr; } void InsertAtFront(int x) { Node* node = new Node(x); node->next = head; head = node; } void InsertAtEnd(int x) { if (head == nullptr) { InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; while (temp->next != nullptr) { temp = temp->next; } temp->next = node; } } void InsertAtPosition(int x, int pos) { if (head == nullptr) {InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; for (int i = 1; i < pos - 1; i++) { temp = temp->next; } node->next = temp->next; temp->next = node; } } int Search(int x) { Node* temp = head; int pos = 1; while (temp != nullptr) { if (temp->data == x){ return pos; } else { temp = temp->next; pos++; } } return 0; } void DeleteFromFront() { if (head != nullptr) { Node* temp = head; head = head->next; delete temp; } } void DeleteFromEnd() { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if(head->next == nullptr) { DeleteFromFront(); } else { while (temp->next != nullptr) { prev = temp; temp = temp->next; } prev->next = nullptr; delete temp; }
} void DeleteAtPosition(int pos) { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if (pos == 1) { DeleteFromFront(); } else { for (int i = 1; i < pos ; i++) { prev = temp; temp = temp->next; } prev->next = temp->next; delete temp; } } void DeleteByValue(int x) { int pos = Search(x); if (pos == 0) { cout << "Value not found" << endl;} else { DeleteAtPosition(pos); } } void UpdateAtPosition(int x, int pos) { if (head == nullptr) { cout << "No element in the list"; return; } if (pos == 1) { head->data = x; } else { Node* temp = head; for (int i = 1; i < pos; i++) { temp = temp->next; } temp->data = x; } } void UpdateByValue(int x, int val) { int pos = Search(val); if (pos == 0) { cout << "Value not found" << endl; return; } else { UpdateAtPosition(x,pos);} } void Print() { Node* temp = head; while (temp != nullptr) { cout << temp->data << " "; temp = temp->next; } cout << endl; } }; Use the following c++ code and modify it so it inserts 2 numbers and deletes 2 numbers #include<iostream> using namespace std; class Node { public: int data; Node* next; Node(int x) { data = x; next = nullptr; } }; class LinkedList { public: Node* head; LinkedList() { head = nullptr; } void InsertAtFront(int x) { Node* node = new Node(x); node->next = head; head = node; } void InsertAtEnd(int x) { if (head == nullptr) { InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; while (temp->next != nullptr) { temp = temp->next; } temp->next = node; } } void InsertAtPosition(int x, int pos) { if (head == nullptr) {InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; for (int i = 1; i < pos - 1; i++) { temp = temp->next; } node->next = temp->next; temp->next = node; } } int Search(int x) { Node* temp = head; int pos = 1; while (temp != nullptr) { if (temp->data == x){ return pos; } else { temp = temp->next; pos++; } } return 0; } void DeleteFromFront() { if (head != nullptr) { Node* temp = head; head = head->next; delete temp; } } void DeleteFromEnd() { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if(head->next == nullptr) { DeleteFromFront(); } else { while (temp->next != nullptr) { prev = temp; temp = temp->next; } prev->next = nullptr; delete temp; }
} void DeleteAtPosition(int pos) { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if (pos == 1) { DeleteFromFront(); } else { for (int i = 1; i < pos ; i++) { prev = temp; temp = temp->next; } prev->next = temp->next; delete temp; } } void DeleteByValue(int x) { int pos = Search(x); if (pos == 0) { cout << "Value not found" << endl;} else { DeleteAtPosition(pos); } } void UpdateAtPosition(int x, int pos) { if (head == nullptr) { cout << "No element in the list"; return; } if (pos == 1) { head->data = x; } else { Node* temp = head; for (int i = 1; i < pos; i++) { temp = temp->next; } temp->data = x; } } void UpdateByValue(int x, int val) { int pos = Search(val); if (pos == 0) { cout << "Value not found" << endl; return; } else { UpdateAtPosition(x,pos);} } void Print() { Node* temp = head; while (temp != nullptr) { cout << temp->data << " "; temp = temp->next; } cout << endl; } }; Use the following c++ code and modify it so it inserts 2 numbers and deletes 2 numbers #include<iostream> using namespace std; class Node { public: int data; Node* next; Node(int x) { data = x; next = nullptr; } }; class LinkedList { public: Node* head; LinkedList() { head = nullptr; } void InsertAtFront(int x) { Node* node = new Node(x); node->next = head; head = node; } void InsertAtEnd(int x) { if (head == nullptr) { InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; while (temp->next != nullptr) { temp = temp->next; } temp->next = node; } } void InsertAtPosition(int x, int pos) { if (head == nullptr) {InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; for (int i = 1; i < pos - 1; i++) { temp = temp->next; } node->next = temp->next; temp->next = node; } } int Search(int x) { Node* temp = head; int pos = 1; while (temp != nullptr) { if (temp->data == x){ return pos; } else { temp = temp->next; pos++; } } return 0; } void DeleteFromFront() { if (head != nullptr) { Node* temp = head; head = head->next; delete temp; } } void DeleteFromEnd() { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if(head->next == nullptr) { DeleteFromFront(); } else { while (temp->next != nullptr) { prev = temp; temp = temp->next; } prev->next = nullptr; delete temp; }
} void DeleteAtPosition(int pos) { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if (pos == 1) { DeleteFromFront(); } else { for (int i = 1; i < pos ; i++) { prev = temp; temp = temp->next; } prev->next = temp->next; delete temp; } } void DeleteByValue(int x) { int pos = Search(x); if (pos == 0) { cout << "Value not found" << endl;} else { DeleteAtPosition(pos); } } void UpdateAtPosition(int x, int pos) { if (head == nullptr) { cout << "No element in the list"; return; } if (pos == 1) { head->data = x; } else { Node* temp = head; for (int i = 1; i < pos; i++) { temp = temp->next; } temp->data = x; } } void UpdateByValue(int x, int val) { int pos = Search(val); if (pos == 0) { cout << "Value not found" << endl; return; } else { UpdateAtPosition(x,pos);} } void Print() { Node* temp = head; while (temp != nullptr) { cout << temp->data << " "; temp = temp->next; } cout << endl; } }; Use the following c++ code and modify it so it inserts 2 numbers and deletes 2 numbers #include<iostream> using namespace std; class Node { public: int data; Node* next; Node(int x) { data = x; next = nullptr; } }; class LinkedList { public: Node* head; LinkedList() { head = nullptr; } void InsertAtFront(int x) { Node* node = new Node(x); node->next = head; head = node; } void InsertAtEnd(int x) { if (head == nullptr) { InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; while (temp->next != nullptr) { temp = temp->next; } temp->next = node; } } void InsertAtPosition(int x, int pos) { if (head == nullptr) {InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; for (int i = 1; i < pos - 1; i++) { temp = temp->next; } node->next = temp->next; temp->next = node; } } int Search(int x) { Node* temp = head; int pos = 1; while (temp != nullptr) { if (temp->data == x){ return pos; } else { temp = temp->next; pos++; } } return 0; } void DeleteFromFront() { if (head != nullptr) { Node* temp = head; head = head->next; delete temp; } } void DeleteFromEnd() { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if(head->next == nullptr) { DeleteFromFront(); } else { while (temp->next != nullptr) { prev = temp; temp = temp->next; } prev->next = nullptr; delete temp; }
} void DeleteAtPosition(int pos) { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if (pos == 1) { DeleteFromFront(); } else { for (int i = 1; i < pos ; i++) { prev = temp; temp = temp->next; } prev->next = temp->next; delete temp; } } void DeleteByValue(int x) { int pos = Search(x); if (pos == 0) { cout << "Value not found" << endl;} else { DeleteAtPosition(pos); } } void UpdateAtPosition(int x, int pos) { if (head == nullptr) { cout << "No element in the list"; return; } if (pos == 1) { head->data = x; } else { Node* temp = head; for (int i = 1; i < pos; i++) { temp = temp->next; } temp->data = x; } } void UpdateByValue(int x, int val) { int pos = Search(val); if (pos == 0) { cout << "Value not found" << endl; return; } else { UpdateAtPosition(x,pos);} } void Print() { Node* temp = head; while (temp != nullptr) { cout << temp->data << " "; temp = temp->next; } cout << endl; } }; #include<iostream> using namespace std; class Node { public: int data; Node* next; Node(int x) { data = x; next = nullptr; } }; class LinkedList { public: Node* head; LinkedList() { head = nullptr; } void InsertAtFront(int x) { Node* node = new Node(x); node->next = head; head = node; } void InsertAtEnd(int x) { if (head == nullptr) { InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; while (temp->next != nullptr) { temp = temp->next; } temp->next = node; } } void InsertAtPosition(int x, int pos) { if (head == nullptr) {InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; for (int i = 1; i < pos - 1; i++) { temp = temp->next; } node->next = temp->next; temp->next = node; } } int Search(int x) { Node* temp = head; int pos = 1; while (temp != nullptr) { if (temp->data == x){ return pos; } else { temp = temp->next; pos++; } } return 0; } void DeleteFromFront() { if (head != nullptr) { Node* temp = head; head = head->next; delete temp; } } void DeleteFromEnd() { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if(head->next == nullptr) { DeleteFromFront(); } else { while (temp->next != nullptr) { prev = temp; temp = temp->next; } prev->next = nullptr; delete temp; }
} void DeleteAtPosition(int pos) { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if (pos == 1) { DeleteFromFront(); } else { for (int i = 1; i < pos ; i++) { prev = temp; temp = temp->next; } prev->next = temp->next; delete temp; } } void DeleteByValue(int x) { int pos = Search(x); if (pos == 0) { cout << "Value not found" << endl;} else { DeleteAtPosition(pos); } } void UpdateAtPosition(int x, int pos) { if (head == nullptr) { cout << "No element in the list"; return; } if (pos == 1) { head->data = x; } else { Node* temp = head; for (int i = 1; i < pos; i++) { temp = temp->next; } temp->data = x; } } void UpdateByValue(int x, int val) { int pos = Search(val); if (pos == 0) { cout << "Value not found" << endl; return; } else { UpdateAtPosition(x,pos);} } void Print() { Node* temp = head; while (temp != nullptr) { cout << temp->data << " "; temp = temp->next; } cout << endl; } }; #include<iostream> using namespace std; class Node { public: int data; Node* next; Node(int x) { data = x; next = nullptr; } }; class LinkedList { public: Node* head; LinkedList() { head = nullptr; } void InsertAtFront(int x) { Node* node = new Node(x); node->next = head; head = node; } void InsertAtEnd(int x) { if (head == nullptr) { InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; while (temp->next != nullptr) { temp = temp->next; } temp->next = node; } } void InsertAtPosition(int x, int pos) { if (head == nullptr) {InsertAtFront(x); } else { Node* node = new Node(x); Node* temp = head; for (int i = 1; i < pos - 1; i++) { temp = temp->next; } node->next = temp->next; temp->next = node; } } int Search(int x) { Node* temp = head; int pos = 1; while (temp != nullptr) { if (temp->data == x){ return pos; } else { temp = temp->next; pos++; } } return 0; } void DeleteFromFront() { if (head != nullptr) { Node* temp = head; head = head->next; delete temp; } } void DeleteFromEnd() { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if(head->next == nullptr) { DeleteFromFront(); } else { while (temp->next != nullptr) { prev = temp; temp = temp->next; } prev->next = nullptr; delete temp; }
} void DeleteAtPosition(int pos) { Node* prev = nullptr; Node* temp = head; if (head == nullptr) { cout << "Nothing to delete" << endl; } else if (pos == 1) { DeleteFromFront(); } else { for (int i = 1; i < pos ; i++) { prev = temp; temp = temp->next; } prev->next = temp->next; delete temp; } } void DeleteByValue(int x) { int pos = Search(x); if (pos == 0) { cout << "Value not found" << endl;} else { DeleteAtPosition(pos); } } void UpdateAtPosition(int x, int pos) { if (head == nullptr) { cout << "No element in the list"; return; } if (pos == 1) { head->data = x; } else { Node* temp = head; for (int i = 1; i < pos; i++) { temp = temp->next; } temp->data = x; } } void UpdateByValue(int x, int val) { int pos = Search(val); if (pos == 0) { cout << "Value not found" << endl; return; } else { UpdateAtPosition(x,pos);} } void Print() { Node* temp = head; while (temp != nullptr) { cout << temp->data << " "; temp = temp->next; } cout << endl; } };

Explanation / Answer

#include<iostream>
using namespace std;
class Node {
public:
   int data;
   int data2;
   Node* next;
   Node(int x,int y) { data = x;data2 = y; next = nullptr; }
};
class LinkedList {
public:
   Node* head;
   LinkedList() { head = nullptr; }
   void InsertAtFront(int x,int y) {
       Node* node = new Node(x,y);
       node->next = head;
       head = node;
   }
   void InsertAtEnd(int x,int y) {
       if (head == nullptr) {
           InsertAtFront(x,y);
       }
       else {
           Node* node = new Node(x,y);
           Node* temp = head;
           while (temp->next != nullptr) {
               temp = temp->next;
           }
           temp->next = node;
       }
   }
   void InsertAtPosition(int x,int y, int pos) {
       if (head == nullptr) {InsertAtFront(x,y);   }
       else {
           Node* node = new Node(x,y);
           Node* temp = head;
           for (int i = 1; i < pos - 1; i++) {   temp = temp->next; }
           node->next = temp->next;
           temp->next = node;
       }
   }
   int Search(int x) {
       Node* temp = head;
       int pos = 1;
       while (temp != nullptr) {
           if (temp->data == x ||temp->data2 == x ){
               return pos;
           }
           else {
               temp = temp->next;
               pos++;
           }
       }
       return 0;
   }
   void DeleteFromFront() {
       if (head != nullptr) {
           Node* temp = head;
           head = head->next;
           delete temp;
       }
   }
   void DeleteFromEnd() {
       Node* prev = nullptr;
       Node* temp = head;
       if (head == nullptr) { cout << "Nothing to delete" << endl; }
       else if(head->next == nullptr) { DeleteFromFront(); }
       else {
           while (temp->next != nullptr) {
               prev = temp;
               temp = temp->next;
           }
           prev->next = nullptr;
           delete temp;
       }

   }
   void DeleteAtPosition(int pos) {
       Node* prev = nullptr;
       Node* temp = head;
       if (head == nullptr) { cout << "Nothing to delete" << endl; }
       else if (pos == 1) { DeleteFromFront(); }
       else {
           for (int i = 1; i < pos ; i++) {
               prev = temp;
               temp = temp->next;
           }
           prev->next = temp->next;
           delete temp;
       }
   }
   void DeleteByValue(int x) {
       int pos = Search(x);
       if (pos == 0) {   cout << "Value not found" << endl;}
       else       { DeleteAtPosition(pos); }
   }
   void UpdateAtPosition(int x, int pos) {
       if (head == nullptr) { cout << "No element in the list"; return; }
       if (pos == 1) { head->data = x; }
       else {
           Node* temp = head;
           for (int i = 1; i < pos; i++) {
               temp = temp->next;
           }
           temp->data = x;
       }
   }
   void UpdateByValue(int x, int val) {
       int pos = Search(val);
       if (pos == 0) { cout << "Value not found" << endl; return; }
       else {   UpdateAtPosition(x,pos);}
   }
   void Print() {
       Node* temp = head;
       while (temp != nullptr) {
           cout << "["<<temp->data << ","<<temp->data2<<"]--->";
           temp = temp->next;
       }
       cout << endl;
   }
};


int main()
{
    LinkedList newNode;
    newNode.InsertAtFront(1,2);
    newNode.InsertAtFront(3,4);
    newNode.InsertAtFront(5,6);
    newNode.InsertAtFront(7,8);
    newNode.Print();
    newNode.DeleteAtPosition(2);
    cout<<"After Delete at position 1 ";
    newNode.Print();
    newNode.DeleteFromFront();
    cout<<"After Delete from front ";
    newNode.Print();
  
}

/*
Sample Output:

[7,8]--->[5,6]--->[3,4]--->[1,2]--->                                                                                
After Delete at position 1                                                                                          
[7,8]--->[3,4]--->[1,2]--->                                                                                         
After Delete from front                                                                                             
[3,4]--->[1,2]--->

*/

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote