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]--->
*/
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.