The function retrieveAt of the class arrayListType is written as a void function. Rewrite this function so that it is written as a value returning function, returning the required item. If the location of the item to be returned is out of range, use the assert function to terminate the program.
note: please give all code in c++
below is the class and implementation(a test program would be helpful in determining how to use it):
class arrayListType
{
public:
bool isEmpty() const;
//Function to determine whether the
list is empty
//Postcondition: Returns true if the
list is empty;
//
otherwise, returns false.
bool isFull() const;
//Function to determine whether the
list is full
//Postcondition: Returns true if the
list is full;
//
otherwise, returns false.
int listSize() const;
//Function to determine the number
of elements in
//the list.
//Postcondition: Returns the value
of length.
int maxListSize() const;
//Function to determine the maximum
size of the list
//Postcondition: Returns the value
of maxSize.
void print() const;
//Function to output the elements of
the list
//Postcondition: Elements of the
list are output on the
//
standard output device.
bool isItemAtEqual(int location, int item)
const;
//Function to determine whether item
is the same as
//the item in the list at the
position specified
//by location.
//Postcondition: Returns true if
list[location]
//
is the same as item; otherwise,
//
returns false.
//
If location is out of range, an
//
appropriate message is displayed.
virtual void insertAt(int location, int
insertItem) = 0;
//Function to insert insertItem in
the list at the
//position specified by
location.
//Note that this is an abstract
function.
//Postcondition: Starting at
location, the elements of
//
the list are shifted down,
//
list[location] = insertItem; length++;
//
If the list is full or location is out of
//
range, an appropriate message is displayed.
virtual void insertEnd(int insertItem) =
0;
//Function to insert insertItem an
item at the end of
//the list. Note that this is an
abstract function.
//Postcondition: list[length] =
insertItem; and length++;
//
If the list is full, an appropriate
//
message is displayed.
void removeAt(int location);
//Function to remove the item from
the list at the
//position specified by
location
//Postcondition: The list element at
list[location] is
//
removed and length is decremented by 1.
//
If location is out of range, an
//
appropriate message is displayed.
void retrieveAt(int location, int&
retItem) const;
//Function to retrieve the element
from the list at the
//position specified by
location
//Postcondition: retItem =
list[location]
//
If location is out of range, an
//
appropriate message is displayed.
virtual void replaceAt(int location, int
repItem) = 0;
//Function to replace the elements
in the list
//at the position specified by
location.
//Note that this is an abstract
function.
//Postcondition: list[location] =
repItem
//
If location is out of range, an
//
appropriate message is displayed.
void clearList();
//Function to remove all the
elements from the list
//After this operation, the size of
the list is zero.
//Postcondition: length = 0;
virtual int seqSearch(int searchItem) const =
0;
//Function to search the list for
searchItem.
//Note that this is an abstract
function.
//Postcondition: If the item is
found, returns the
//
location in the array where the item is
//
found; otherwise, returns -1.
virtual void remove(int removeItem) =
0;
//Function to remove removeItem from
the list.
//Note that this is an abstract
function.
//Postcondition: If removeItem is
found in the list,
//
it is removed from the list and length
//
is decremented by one.
arrayListType(int size = 100);
//Constructor
//Creates an array of the size
specified by the
//parameter size. The default array
size is 100.
//Postcondition: The list points to
the array, length = 0,
//
and maxSize = size;
arrayListType (const arrayListType&
otherList);
//Copy constructor
virtual ~arrayListType();
//Destructor
//Deallocate the memory occupied by
the array.
protected:
int *list; //array to hold the
list elements
int length; //variable to store the
length of the list
int maxSize; //variable to store the
maximum
//size of the list
};
#include
#include "arrayListType.h"
using namespace std;
bool arrayListType::isEmpty() const
{
return (length == 0);
} //end isEmpty
bool arrayListType::isFull() const
{
return (length == maxSize);
} //end isFull
int arrayListType::listSize() const
{
return length;
} //end listSize
int arrayListType::maxListSize() const
{
return maxSize;
} //end maxListSize
void arrayListType::print() const
{
for (int i = 0; i < length; i++)
cout << list[i]
<< " ";
cout << endl;
} //end print
bool arrayListType::isItemAtEqual(int location, int item)
const
{
if (location < 0 || location >=
length)
{
cout << "The
location of the item to be removed "
<< "is out of range." << endl;
return false;
}
else
return (list[location]
== item);
} //end isItemAtEqual
void arrayListType::removeAt(int location)
{
if (location < 0 || location >=
length)
cout << "The
location of the item to be removed "
<< "is out of range." << endl;
else
{
for (int i = location; i
< length - 1; i++)
list[i] = list[i+1];
length--;
}
} //end removeAt
void arrayListType::retrieveAt(int location, int& retItem)
const
{
if (location < 0 || location >=
length)
cout << "The
location of the item to be retrieved is "
<< "out of range" << endl;
else
retItem =
list[location];
} //end retrieveAt
void arrayListType::clearList()
{
length = 0;
} //end clearList
arrayListType::arrayListType(int size)
{
if (size <= 0)
{
cout << "The array
size must be positive. Creating "
<< "an array of the size 100." << endl;
maxSize = 100;
}
else
maxSize = size;
length = 0;
list = new int[maxSize];
} //end constructor
arrayListType::~arrayListType()
{
delete [] list;
} //end destructor
arrayListType::arrayListType(const arrayListType&
otherList)
{
maxSize = otherList.maxSize;
length = otherList.length;
list = new int[maxSize]; //create the array
for (int j = 0; j < length; j++) //copy
otherList
list [j] =
otherList.list[j];
}//end copy constructor
I see that you have defined pure virtual functions (function declaration ending with = 0) in the class arrayListType . Hence you cannot define those function inside this class . You have to create a class and inherit this arrayListType class and define all the virtual functions there.
let tempList be the new class
class tempList : public arrayListType
{
public :
tempList(int size) : arrayListType(size)
{
// NOthing to be done in this constructor
}
/*
Put all virtual function definition here :
e.g:
void insertAt(int location, int insertItem){
// Code for insert goes here
}
you need to do this for all the pre virtual function funtion
*/
};
As of retrieveAt() is concerned , following is the funtion definition , you need to change the function declaration in arrayListType.h accordingly :
int arrayListType::retrieveAt(int location) const
{
int retItem = 0;
assert( (location < 0) || (location >= length));
retItem = list[location];
return retItem;
} //end retrieveAt
you need to include #include<cassert> header file to use assert() function.
#include<iostream>
#include<cassert>
using namespace std;
int main()
{
tempList list1(10);
list1.insertAt(0,1);
cout<< "Value at location 0 : " << list1.retrieveAt(0)
<<endl;
return 0;
}
Please comment if you are unable to do this .
The function retrieveAt of the class arrayListType is written as a void function. Rewrite this function...
This project is divided into 3 parts: Part 1. Create a new project and download the arrayList and unorderedArrayList templates that are attached. Create a header file for your unorderedSet template and add it to the project. An implementation file will not be needed since the the new class will be a template. Override the definitions of insertAt, insertEnd, and replaceAt in the unorderedSet template definition. Implement the template member functions so that all they do is verify that the...
A. Please explain function studentType(): studentType::studentType() { numberOfCourses = 0; sId = 0; isTuitionPaid = false; for (inti = 0; i < 6; i++) coursesGrade[i] = '*'; } B. Please explain function arrayListType() and :~arrayListType() arrayListType::arrayListType(int size) { if (size <= 0) { cout << "The array size must be positive. Creating " << "an array of the size 100." << endl; maxSize = 100; } else maxSize = size; length = 0; list = new int[maxSize]; } arrayListType::~arrayListType() {...
(C++) Two stacks of the same type are the same if they have the same number of elements and their elements at the corresponding positions are the same. Overload the relational operator == for the class stackType that returns true if two stacks of the same type are the same; it returns false otherwise. Also, write the definition of the function template to overload this operator. Write a program to test the various overloaded operators and functions of classstackType. **Please...
I'm just not sure how to tackle all the template class this header wants me to write. I got this far into making the template for public and private and would like help on the template functions. Thank you! This is in C++ by the way. #include <iostream> #include <cassert> using namespace std; #ifndef ARRAYLIST_H #define ARRAYLIST_H template<typename T> class arrayList { public: arrayList(); //Constructor with default parameter. //Sets maxSize = 100 and length = 0 if no parameter...
//This program is your final exam. //Please fill in the functions at the bottom of the file. (evenCount and insertItem) //DO NOT CHANGE ANYTHING ELSE. //main has all the code needed to test your functions. Once your functions are written, please build and make sure it works fine //Note that in this case, the list is not sorted and does not need to be. Your goal is to insert the number in the given position. #include <iostream> #include <fstream> using...
//This program is your final exam. //Please fill in the functions at the bottom of the file. (evenCount and insertItem) //DO NOT CHANGE ANYTHING ELSE. //main has all the code needed to test your functions. Once your functions are written, please build and make sure it works fine //Note that in this case, the list is not sorted and does not need to be. Your goal is to insert the number in the given position. #include <iostream> #include <fstream> using...
How do I do this? -> string print() const; Function to output the data, return the output in the form of string, with all elements in the hash table included and each seperated by a space this is my code: template <class elemType> string hashT<elemType>::print() const { for (int i = 0; i < HTSize; i++){ if (indexStatusList[i] == 1){ cout <<HTable[i]<< " " << endl; } } } **********Rest of the code...
PART 1 Modify the class ArrayList given in Exercise 1 by using expandable arrays. That is, if the list is full when an item is being added to this list, the elements will be moved to a larger array. The new array should have twice the size of the original array. Using the new class ArrayList, write a program to store 1,000 random numbers, each in the interval [0, 500]. The initial size of the array in the class should...
Use C++! This program uses the class myStack to determine the highest GPA from a list of students with their GPA.The program also outputs the names of the students who received the highest GPA. Redo this program so that it uses the STL list and STL queue! Thank you! HighestGPAData.txt* 3.4 Randy 3.2 Kathy 2.5 Colt 3.4 Tom 3.8 Ron 3.8 Mickey 3.6 Peter 3.5 Donald 3.8 Cindy 3.7 Dome 3.9 Andy 3.8 Fox 3.9 Minnie 2.7 Gilda 3.9 Vinay...
Data Structures and Algorithms C++: I'm having a hard time getting my main.cpp part of the source code (shown below) to output the following: Inserting elements to array list: The list contains 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Deleting elements: The list contains: 2 4 6 8 10 12 14 16 18 20 22 24 this is a programming problem in...