Question
in the below code I'm getting output after Add first line: 100 110 120 130 140 150 160 After deleting second line: 110 120 140
in the below code I'm getting output after Add first line: 100 110 120 130 140 150 160 After deleting second line: 110 120 140 150 After adding third line: 110 1 120 140 150
I want output
Add first line: 100 110 120 130 140 150 160 After deleting second line: 110 120 140 150 After adding third line: 1 110 120 2 140 150 3
help me!!! please remember don't change this code if something only add that part
#include
using namespace std;
class ItemType { public: int key; ItemType(int k) : key(k) {} };
struct NodeType { ItemType item; NodeType *next; NodeType(ItemType i) : item(i), next(nullptr) {} };
class UnsortedList { public: UnsortedList() : head(nullptr), length(0) {}
void putItem(ItemType item); void putItem(ItemType item, int pos); void deleteItem(int key); ItemType& getItem(int pos); void printAll(); int getLength() { return length; }
private: NodeType *head; int length; };
void UnsortedList::putItem(ItemType item) { NodeType *newNode = new NodeType(item); newNode->next = head; head = newNode; length++; }
void UnsortedList::putItem(ItemType item, int pos) { if (pos == length) { putItem(item); return; }
NodeType *newNode = new NodeType(item); NodeType *current = head; for (int i = 0; i < pos - 1; i++) { current = current->next; } newNode->next = current->next; current->next = newNode; length++; }
void UnsortedList::deleteItem(int key) { NodeType *current = head; NodeType *prev = nullptr;
while (current != nullptr && current->item.key != key) { prev = current; current = current->next; }
if (current == nullptr) { return; }
if (prev == nullptr) { head = current->next; } else { prev->next = current->next; }
delete current; length--; }
ItemType& UnsortedList::getItem(int pos) { NodeType *current = head; for (int i = 0; i < pos; i++) { current = current->next; } return current->item; }
void UnsortedList::printAll() { NodeType *current = head; while (current != nullptr) { cout << current->item.key << " "; current = current->next; } cout << endl; }
vector
int main() { UnsortedList list; ifstream dataFile("data.txt"); string line;
if (dataFile.is_open()) { // Add numbers from first line to list getline(dataFile, line); vector
// Delete numbers from second line getline(dataFile, line); numbers = getNumbersFromString(line); for (int i = 0; i < numbers.size(); i++) { list.deleteItem(numbers[i]); } cout << "After deleting second line: "; list.printAll();
// Add numbers from third line getline(dataFile, line); numbers = getNumbersFromString(line); for (int i = 0; i < numbers.size(); i++) { int pos = numbers[i] - 1; if (pos == -1) { pos = list.getLength(); } list.putItem(ItemType(numbers[i]), pos); }
cout << "After adding third line: "; list.printAll();
dataFile.close(); } else { cout << "Unable to open data file" << endl; }
return 0; }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started