LinkedList.h - File containing your LinkedList class definition. Methods.cpp - File containing your method definitions f

Business, Finance, Economics, Accounting, Operations Management, Computer Science, Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Algebra, Precalculus, Statistics and Probabilty, Advanced Math, Physics, Chemistry, Biology, Nursing, Psychology, Certifications, Tests, Prep, and more.
Post Reply
answerhappygod
Site Admin
Posts: 899603
Joined: Mon Aug 02, 2021 8:13 am

LinkedList.h - File containing your LinkedList class definition. Methods.cpp - File containing your method definitions f

Post by answerhappygod »

LinkedList.h - File containing your LinkedList classdefinition.
Methods.cpp - File containing your method definitions for theLinkedList lass (if you decide to separate your methods into aseparate .cpp file)
TestLinkedList.cpp - File containing your main function thattests the Linked List class.
#include "Node.h"
#include <string>
#include <sstream>
using std::to_string;
using std::string;
using std::stringstream;
template<class T>
class UnorderedList {
private:
Node<T>* head;
Node<T>* tail;
int size;
public:
UnorderedList()
{
head = tail =nullptr;
size = 0;
}
~UnorderedList()
{
clear_list();
}
//Note: Including const at the end ofthe function
//makes this method safe to call from aconst declared
//object. For example:
// constUnorderedList<string> my_list;
//
//can call any method with "const" atthe end.
//i.e., "my_list.get_size()"
//but CANNOT call"my_list.append("blah")", for example.
//This is used to define operator= foryour PigLatinWord
//class to make it more compatable withother STLs/classes.
//Additionally, do NOT put "const" onany mutator methods,
//as all mutator methods result in achange in the object,
//which goes against the idea ofconstants.
int getSize() const
{
return size;
}
//This method is already complete foryou.
//Adds a new node to the beginning ofthe
//linked list.
void prepend(const T& new_data)
{
//Create the newnode and make head point to it.
Node<T>*temp = new Node<T>(new_data, head);
head = temp;
//If head isempty, then also set tail to point to it.
if (head ==nullptr)
tail= temp;
size++;
}
//This method is already complete foryou.
//Adds a new node to the end of thelinked
//list.
void append(const T& new_data)
{
/*Complete theinsert function here */
}
//Inserts a new node at a specificposition
//in the linked list.
bool insert(const T& new_data, intposition)
{
/*Complete theinsert function here */
}
//Removes all nodes from the linkedlist.
//Note: Make sure that all pointers
//are set to null and the size isset
//to zero.
void clearList()
{
/*Complete theclear list function here*/
}
//This method is already complete foryou.
//Removes a node from the front of thelist.
bool popFront(T& data)
{
/*Complete thepopFront function here */
}
//This method is already complete foryou.
//Removes a node from the back of thelist.
bool popBack(T& data)
{
if (tail ==nullptr)
returnfalse;
else
{
Node<T>*temp = head;
Node<T>*temp2 = tail;
while(temp->getNext() != tail)
temp= temp->getNext();
data= tail->getData();
temp->setNext(nullptr);
deletetail;
size--;
returntrue;
}
}
//Removes a node at a specific positionin the Linked List.
bool remove(T& data, intposition)
{
/* Complete theremove function here. */
}
bool getHead(T& data) const
{
if (head !=nullptr)
{
data= head->getData();
returntrue;
}
else
{
returnfalse;
}
}
bool getTail(T& data) const
{
/*Complete thegetTail function here */
}
bool getAt(T& data, int pos)const
{
/*Complete thegetAt function here */
}
string toString(string sep = "")const
{
stringstreamret_str;
for(Node<T>* temp = head; temp != nullptr; temp =temp->getNext())
{
ret_str<< temp->getData() << sep;
}
returnret_str.str();
}
};
Help in c++
Join a community of subject matter experts. Register for FREE to view solutions, replies, and use search function. Request answer by replying!
Post Reply