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

(IN C++) Write the member functions for the class List: void Delete(int data) wh

ID: 3835835 • Letter: #

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 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 <iostream>

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"<<endl;

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 "<<data<<"."<<endl;

return NULL;

}

else

{

cout<<"Found "<<data<<"."<<endl;

return current;

}

}

void List::Print()

{

Node *current;

cout<<"Linked List Nodes: "<<endl;

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

{

cout<<current->Data();

cout<<endl;

}

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"<<endl;

list.Add_Front(888);

list.Print();

list.Add_Front(999);

list.Print();

list.Add_Front(49);

list.Print();

cout<<"Checking find function"<<endl;

answer = list.Find(888);

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

<<endl;

cout<<"Checking find function"<<endl;

answer = list.Find(999);

cout<<"Value for node returned by find function call with 999 is "<<answer->Data()<<"."<<endl;

cout<<"Checking find function"<<endl;

answer = list.Find(49);

cout<<"Value for node returned by find function call with 49 is "<<answer->Data()<<"."<<endl;

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

answer = list.Find(7);

if(answer == NULL)

{

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

}

else

{

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

}

cout<<"testing delete_front: "<<endl;

list.Delete_Front();

list.Print();

cout<<"testing delete_end: "<<endl;

list.Delete_End();

list.Print();

system("Pause");

return 0;

}

Explanation / Answer

/* * C++ Program to Implement Singly Linked List */ #include #include #include using namespace std; /* * Node Declaration */ struct node { int info; struct node *next; }*start; /* * Class Declaration */ class single_llist { public: node* create_node(int); void insert_begin(); void insert_pos(); void insert_last(); void delete_pos(); void sort(); void search(); void update(); void reverse(); void display(); single_llist() { start = NULL; } };