I need help with some of the functions, thank you! • StringList.h – In this file
ID: 3858926 • Letter: I
Question
I need help with some of the functions, thank you!
• StringList.h
– In this file, you declare a class named StringList.
– StringList is a modified version of NumberList class (Chapter 17), that is designed to store C++ strings in a linked list.
– Therefore, each node must store a string, not a number.
– The node structure must be declared within class, and a private attribute head points to the starting node.
– The class provides a default constructor that creates an empty linked list, and a destructor that releases all the nodes.
– The class also provides public member functions for inserting and deleting a node (see below for details).
– It also provides a public member function for displaying the list.
• StringList.cpp
– In this file, you provide definitions for the default constructor and the destructor for StringList.
– Make sure the destructor visits every node in the list and deletes every one of them from the heap.
– Define insertFront function to insert a new node into the front of the list. Therefore, the new node will be the new first node in the list. This function takes a string as a parameter.
– Define insertBack function to insert a new node into the back of the list. Therefore, the new node will be the new last node in the list. This function takes a string as a parameter.
– Define deleteFront function to delete the first node from the list. This function takes no parameter.
– Define deleteBack function to delete the last node from the list. This function takes no parameter.
– Define display function that displays the current contents (strings) of the list (display strings in a single line, separated by a space). This function takes no parameter.
• hw5.cpp – In this file, you define main function that tests StringList class.
– You must first create a StringList object. 1
– Then start inserting new nodes, one at a time. Alternate between inserting into the front and into the back. Make sure to add at least 6 nodes.
– Then start deleting nodes, one at a time. Alternate between deleting from the front and from the back.
– Make sure all the nodes are deleted before terminating the program.
– After each insertion or deletion, call display member function to display the updated list.
– Make sure all the member functions are tested and shown to work properly, without missing any of them.
– Note that the display function must be called pretty much every time a node is inserted or deleted. Otherwise the respective functionality will not be properly demonstrated and could lead to loss of points. – Also note that each member function should properly
Explanation / Answer
• StringList.h
#ifndef STRINGLIST_H
#define STRINGLIST_H
#include <iostream>
#include <string>
#include <string.h>
#include <stdio.h>
using namespace std;
class StringList
{
private:
struct listNode
{
string name;
string a;
struct listNode *next;
};
listNode *head;
public:
StringList()
{
head = NULL;
}
~StringList();
void insertNode(string a);
void deleteNode(string a);
void displayList() const;
void deleteFront();
void deleteBack();
void clear();
};
#endif
• StringList.cpp
#include <iostream>
#include "StringList.h"
using namespace std;
StringList::StringList()
{
head = nullptr;
}
StringList::~StringList()
{
delete head;
clear();
}
StringList::deleteFront()
{
if(head != NULL)
{
listNode *tmp = head -> next;
delete head;
head = tmp;
}
}
StringList::displayList()
{
listNode *nodePtr;
if(!head)
{
cout << "List is empty";
return;
}
nodePtr = head;
cout << "Here is the list: ";
while (nodePtr)
{
cout << nodePtr -> a << " -> ";
}
nodePtr = nodePtr -> next;
}