Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a class ArrayList that represents an array of integers. Initially it has a

ID: 3927923 • Letter: W

Question

Write a class ArrayList that represents an array of integers. Initially it has a capacity of 1 and is “empty”. At any time, it can be partially full, so it keeps track of its current occupied size, as well as its capacity (true size). Write a class ArrayList that represents an array of integers. Initially it has a capacity of 1 and is “empty”. At any time, it can be partially full, so it keeps track of its current occupied size, as well as its capacity (true size).
However the output for the prime numbers 1 -50 is incorrect. Displaying numbers like 0, 625 for prime numbers.

This is my code with the main method below #include <iostream> #include <stdlib.h> #include <sstream> using namespace std;
class ArrayList { private: int *array; int capacity, asize; public: int size(); ArrayList(); int & operator [](unsigned int); void push_back(int); void erase(int m); string toString(); }; // 1.a: Default constructor used to unitialize the array with capacity=1 ArrayList::ArrayList() { asize = 0; capacity = 1; array = new int[capacity]; } // This function returns the actual size of array int ArrayList::size() { return asize; } // 1.b:The overloaded [] oprtaor return element at ith position in array int & ArrayList::operator [](unsigned int i) { if(i >= asize) { cout << "invalid reference "; exit(0); } return *(array + i); } //1.c: This function push m at the end of the array void ArrayList::push_back(int m) { // this condition checks if size is beyond capacity or not. if so double the capacity. if(asize == capacity) { capacity = 2 * capacity; int *temp = new int[capacity]; for(int i = 0; i < asize; i++) temp[i] = array[i]; array = new int[capacity]; for(int i = 0; i < asize; i++) array[i] = temp[i]; } array[asize] = m; asize = asize + 1; } void ArrayList::erase(int m){ int pos = -1; for(int i = 0; i < asize; i++){ if(array[i] == m){ pos = i; break; } } if(pos == -1){ cout << "Element not present "; } else{ for(int i = pos; i < asize - 1; i++){ array[i] = array[i + 1]; } } asize--; if(asize == capacity / 2) { capacity = capacity / 2; int *temp = new int[capacity]; for(int i = 0; i < asize; i++) temp[i] = array[i]; array = new int[capacity]; for(int i = 0; i < asize; i++) array[i] = temp[i]; } } string ArrayList::toString(){ string str = "["; for(int i = 0; i < asize; i++){ ostringstream oss; oss << array[i]; str += oss.str(); if(i != asize - 1){ str += ", "; } } str += "]"; return str; }
//--------------------------- //You can test above class by using main() below
int main() { ArrayList arr; // call ro default constructor for (int i = 1; i <= 50; i++) { arr.push_back(i); // call to push_back() } cout << "Should contain numbers 1..50, is "; cout << arr.toString(); cout << " "; return 0; }

This is my code with the main method below #include <iostream> #include <stdlib.h> #include <sstream> using namespace std;
class ArrayList { private: int *array; int capacity, asize; public: int size(); ArrayList(); int & operator [](unsigned int); void push_back(int); void erase(int m); string toString(); }; // 1.a: Default constructor used to unitialize the array with capacity=1 ArrayList::ArrayList() { asize = 0; capacity = 1; array = new int[capacity]; } // This function returns the actual size of array int ArrayList::size() { return asize; } // 1.b:The overloaded [] oprtaor return element at ith position in array int & ArrayList::operator [](unsigned int i) { if(i >= asize) { cout << "invalid reference "; exit(0); } return *(array + i); } //1.c: This function push m at the end of the array void ArrayList::push_back(int m) { // this condition checks if size is beyond capacity or not. if so double the capacity. if(asize == capacity) { capacity = 2 * capacity; int *temp = new int[capacity]; for(int i = 0; i < asize; i++) temp[i] = array[i]; array = new int[capacity]; for(int i = 0; i < asize; i++) array[i] = temp[i]; } array[asize] = m; asize = asize + 1; } void ArrayList::erase(int m){ int pos = -1; for(int i = 0; i < asize; i++){ if(array[i] == m){ pos = i; break; } } if(pos == -1){ cout << "Element not present "; } else{ for(int i = pos; i < asize - 1; i++){ array[i] = array[i + 1]; } } asize--; if(asize == capacity / 2) { capacity = capacity / 2; int *temp = new int[capacity]; for(int i = 0; i < asize; i++) temp[i] = array[i]; array = new int[capacity]; for(int i = 0; i < asize; i++) array[i] = temp[i]; } } string ArrayList::toString(){ string str = "["; for(int i = 0; i < asize; i++){ ostringstream oss; oss << array[i]; str += oss.str(); if(i != asize - 1){ str += ", "; } } str += "]"; return str; }
//--------------------------- //You can test above class by using main() below
int main() { ArrayList arr; // call ro default constructor for (int i = 1; i <= 50; i++) { arr.push_back(i); // call to push_back() } cout << "Should contain numbers 1..50, is "; cout << arr.toString(); cout << " "; return 0; }

search (Ctr . 23, 24, 25, 26, 27, 2a , a,. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 41, 44· 46. 44, 07, 40, 43, s 01 Should contain only 1, Should eantain only 1, i·[11 Prime umbers between 1 and 50 12, 3, 5. 7. 11, 13,

Explanation / Answer

#include <iostream>
#include <stdlib.h>
#include <sstream>
using namespace std;

class ArrayList
{
private:
int *array;
int capacity, asize;
public:
int size();
ArrayList();
int & operator [](unsigned int);
void push_back(int);
void erase(int m);
string toString();
void primes(int range);
};
// 1.a: Default constructor used to unitialize the array with capacity=1
ArrayList::ArrayList()
{
asize = 0;
capacity = 1;
array = new int[capacity];
}
// This function returns the actual size of array
int ArrayList::size()
{
return asize;
}
// 1.b:The overloaded [] oprtaor return element at ith position in array
int & ArrayList::operator [](unsigned int i)
{
if(i >= asize)
{
cout << "invalid reference ";
exit(0);
}
return *(array + i);
}
//1.c: This function push m at the end of the array
void ArrayList::push_back(int m)
{
// this condition checks if size is beyond capacity or not. if so double the capacity.
if(asize == capacity)
{
capacity = 2 * capacity;
int *temp = new int[capacity];
for(int i = 0; i < asize; i++)
temp[i] = array[i];
array = new int[capacity];
for(int i = 0; i < asize; i++)
array[i] = temp[i];
}
array[asize] = m;
asize = asize + 1;
}
void ArrayList::erase(int m){
int pos = -1;
for(int i = 0; i < asize; i++){
if(array[i] == m){
pos = i;
break;
}
}
if(pos == -1){
cout << "Element not present ";
}
else{
for(int i = pos; i < asize - 1; i++){
array[i] = array[i + 1];
}
}
asize--;
if(asize == capacity / 2)
{
capacity = capacity / 2;
int *temp = new int[capacity];
for(int i = 0; i < asize; i++)
temp[i] = array[i];
array = new int[capacity];
for(int i = 0; i < asize; i++)
array[i] = temp[i];
}
}
string ArrayList::toString(){
string str = "[";
for(int i = 0; i < asize; i++){
ostringstream oss;
oss << array[i];
str += oss.str();
if(i != asize - 1){
str += ", ";
}
}
str += "]";
return str;
}
void ArrayList::primes(int range){
   for(int i = 2; i <= range; i++){
bool isPrimeNum = 0;
//check number prime or not
for(j = 2; j <= i/2; j++){
// check divisibility condition..
if(i % j == 0){
isPrimeNum = 1;
break;
}
}
  
if(isPrimeNum==0 && N!= 1)
cout<<i<<" ";
}
}

//---------------------------
//You can test above class by using main() below

int main()
{
ArrayList arr; // call ro default constructor
for (int i = 1; i <= 50; i++)
{
arr.push_back(i); // call to push_back()
}
cout << "Should contain numbers 1..50, is ";
cout << arr.toString();
cout << " ";
cout<<"Primes: "<<arr.primes(50);
return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote