Question: (IN C++) Write the member functions for the class List: void Delete(int data) which delete the node with data value = data in the list

(IN C++)

Write the member functions for the class List:

void Delete(int data) which delete the node with data value = data in the list if it exists in the list

void Add_End(int data) which adds a node to the end of the list

void Delete_Front() which deletes the first node in the list if there is a first node

as discussed below:

#include

using namespace std;

class Node {

int data;

Node* next;

public:

Node() {};

void SetData(int aData) { data = aData; };

void SetNext(Node* aNext) { next = aNext; };

int Data() { return data; };

Node* Next() { return next; };

};

class List {

Node *head;

public:

List() {

head = NULL;}

void Add_End(int data);

void Delete(int data);

void Delete_Front();

void Add_Front(int data);

void Delete_End();

Node* Find(int data);

void Print();

};

/* you need to add Add_End, Delete, and Delete_Front */

void List::Add_End(int data) {

/* need to write */

}

void List::Delete(int data) {

/* need to write */

}

void List::Delete_Front() {

/* Need to write */

}

void List::Add_Front(int data) {

Node* newNode = new Node();

newNode->SetData(data);

newNode->SetNext(head);

head = newNode;

return;

}

void List::Delete_End() {

if(head == NULL)

{

cout<<"List has no member so cannot delete end"<

return;

}

if(head->Next() == NULL)

{

head = NULL;

return;

}

Node *current;

Node *prev;

prev = head;

for(current = head->Next(); current->Next() != NULL; current = current->Next()) {

prev = current;

}

prev->SetNext(NULL);

return;

}

Node* List::Find(int data) {

Node *current;

for(current = head; current!= NULL && current->Data() != data; current = current->Next())

{}

f(current == NULL)

{

cout<<"Did not find "<

return NULL;

}

else

{

cout<<"Found "<

return current;

}

}

void List::Print()

{

Node *current;

cout<<"Linked List Nodes: "<

for(current = head; current != NULL; current = current->Next())

{

cout<Data();

cout<

}

return;

}

int main()

{

List list;

Node *answer;

list.Add_End(111);

list.Print();

list.Add_End(222);

list.Print();

list.Add_End(333);

list.Print();

list.Add_End(444);

list.Print();

list.Add_End(555);

list.Print();

list.Delete(444);

list.Print();

list.Delete(333);

list.Print();

list.Delete(222);

list.Print();

list.Delete(555);

list.Print();

list.Delete(111);

list.Print();

cout<<"Testing Add_Front: and others"<

list.Add_Front(888);

list.Print();

list.Add_Front(999);

list.Print();

list.Add_Front(49);

list.Print();

cout<<"Checking find function"<

answer = list.Find(888);

cout<<"Value for node returned by find function call with 888 is "<Data()<<"."

<

cout<<"Checking find function"<

answer = list.Find(999);

cout<<"Value for node returned by find function call with 999 is "<Data()<<"."<

cout<<"Checking find function"<

answer = list.Find(49);

cout<<"Value for node returned by find function call with 49 is "<Data()<<"."<

cout<<"Call find function with value not in list."<

answer = list.Find(7);

if(answer == NULL)

{

cout<<"returned null pointer since 7 not found"<

}

else

{

cout<< "in else of answer == NULL where Value for node returned by find function call with 7 is "<Data()<<"."<

}

cout<<"testing delete_front: "<

list.Delete_Front();

list.Print();

cout<<"testing delete_end: "<

list.Delete_End();

list.Print();

system("Pause");

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!