Question: When you use a templated type in C++ ALL templated code must be done in the .h file. This means that ALL of your methods

When you use a templated type in C++ ALL templated code must be done in the .h file. This means that ALL of your methods will be defined in the .h file as well as your class. You should still forward declare Classes above then Methods below. Your .h file should have your LinkedList class and your Node class and the method definitions for both. Remember to use your :: operator correctly. Feel free to use friendship if needed.

You will create a Linked List Class and a Node Class/Struct The Linked List should contain the following methods in its public interface:

? Constructor

? Destructor

? AddToFront(T data) create a node containing T data and add it to the front of the list

? AddToEnd(T data) create a node containing T data and add it to eh end of the list

? AddAtIndex(T data, int index) create a node containing T data and add it to the list at index, return boolean for success or failure (optional: you could also return an integer with failure codes since this method can fail multiple ways)

? NextNode Move the current pointer to the next node, wraps to front if it navigates past the end ? InsertAfterCurrent(T data) Create a node containing T data and insert it after wherever the current pointer is pointing

? RemoveCurrent() Delete the current item and return its contents

? RemoveAtIndex(int index) delete the index # node in the list and return its contents

? RemoveFromFront() Delete first item and return its contents

? RemoveFromEnd() Delete last item and return its contents

? RemoveFirst(T data) find first instance of T data and remove it

? RemoveAll(T data) find each instance of T data and remove it

? ElementExists(T data) Returns a T/F if element exists in list

? Find(T data) Look for data in the list, return a pointer to its node

? IndexOf(T data) returns an index of the item in the list (zero-based)

? RetrieveFront returns the data contained in the first node, does not delete it

? RetrieveEnd returns the data contained in the last node, does not delete it

? Retrieve(int index) returns the data contained in node # index, does not delete it, returns null if index is out of bounds or data does not exist

? ToArray Create an array from the contents of the list and return it

? Empty Empty out the list, delete everything

? Length How many elements are in the list More methods private or public should be created as needed to facilitate the functionality of the Interface methods.

If you feel your list needs more functionality, feel free to create it.

Node Class

? Constructor

? Destructor

? Getters & Setters

The node class should be fairly rudimentary. It should be templated so you can store anything in it.

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!