Question: Extend the class linkedListType by adding the following operations: Write a function that returns the info of the kth element of the linked list. If
Extend the class linkedListType by adding the following operations:
Write a function that returns the info of the kth element of the linked list. If no such element exists, terminate the program. Write a function that deletes the kth element of the linked list. If no such element exists, terminate the program.
Provide the definitions of these functions in the class linkedListType
I'm just wanting the code for the sections where it wants me to fill it in in linkedList.h near the bottom. If you need any of my other files please notify me. I had to trim it down to meet the length requirements for chegg, but I don't think I cut out anything you need.
linkedList.h:
#ifndef H_LinkedListType #define H_LinkedListType
#include
using namespace std;
//Definition of the node
template
template
linkedListIterator(nodeType
Type operator*(); //Function to overload the dereferencing operator *. //Postcondition: Returns the info contained in the node.
linkedListIterator
private: nodeType
template
template
template
template
return *this; }
template
template
//***************** class linkedListType ****************
template
void initializeList(); //Initialize the list to an empty state. //Postcondition: first = nullptr, last = nullptr, // count = 0;
void print() const; //Function to output the data contained in each node. //Postcondition: none
int length() const; //Function to return the number of nodes in the list. //Postcondition: The value of count is returned
Type front() const; //Function to return the first element of the list. //Precondition: The list must exist and must not be // empty. //Postcondition: If the list is empty, the program // terminates; otherwise, the first // element of the list is returned.
Type back() const; //Function to return the last element of the list. //Precondition: The list must exist and must not be // empty. //Postcondition: If the list is empty, the program // terminates; otherwise, the last // element of the list is returned.
virtual bool search(const Type& searchItem) const = 0; //Function to determine whether searchItem is in the list. //Postcondition: Returns true if searchItem is in the // list, otherwise the value false is // returned.
virtual void insertFirst(const Type& newItem) = 0; //Function to insert newItem at the beginning of the list. //Postcondition: first points to the new list, newItem is // inserted at the beginning of the list, // last points to the last node in the list, // and count is incremented by 1.
virtual void deleteNode(const Type& deleteItem) = 0; //Function to delete deleteItem from the list. //Postcondition: If found, the node containing // deleteItem is deleted from the list. // first points to the first node, last // points to the last node of the updated // list, and count is decremented by 1.
linkedListIterator
linkedListType(const linkedListType
Type getKThElement(int k); void deteteKthElement(int k);
protected: int count; //variable to store the number of //elements in the list nodeType
private: void copyList(const linkedListType
template
template
template
current = first; //set current so that it points to //the first node while (current != nullptr) //while more data to print { cout << current->info << " "; current = current->link; } }//end print
template
template
return first->info; //return the info of the first node }//end front
template
return last->info; //return the info of the last node }//end back
template
return temp; }
template
return temp; }
template
if (first != nullptr) //if the list is nonempty, make it empty destroyList();
if (otherList.first == nullptr) //otherList is empty { first = nullptr; last = nullptr; count = 0; } else { current = otherList.first; //current points to the //list to be copied count = otherList.count;
//copy the first node first = new nodeType
first->info = current->info; //copy the info first->link = nullptr; //set the link field of //the node to nullptr last = first; //make last point to the //first node current = current->link; //make current point to //the next node
//copy the remaining list while (current != nullptr) { newNode = new nodeType
template
template
//overload the assignment operator template
return *this; }
template
// fill the code here to find the kth element. }
template
// fill the code here to delete the kth element. }
#endif
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
