Help with c This is same program that we developed in our cl

Help with c++

//This is same program that we developed in our classroom.
//The class models a list with a capacity specified by the
//user at runtime.

//Implement the stated functions at line 35.

#include
using namespace std;

class MyList
{
private:
   static const int DEF=10;
   int* a;
   int csz;
   int cap;
   //helper functions
   int get_index(int) const;

public:
   //Already implemented functions:
   MyList();
   MyList(int);
   MyList(const MyList&);
   ~MyList();

   bool add(int);
   bool remove(int);
   int size() const;
   bool is_present(int) const;
   void display() const;

   void operator=(const MyList&);

   //Implement the following:

   //Points: 10
   //This constructor will create a list of capacity cap with each element
   //in the list initialized with the value initVal.
   MyList(int cap, int initVal);
          

   //Points: 10
   //This function removes every occurrence of val from the list.
   //Returns false if val is not in the list, true otherwise.
   bool remove_all(int val);

   //Points: 10
   //This function swaps the contents of this list with that of other.
   //The two lists may be of different size and/or capacity.
   void swap(MyList& other);

   //Points: 20
   //This function changes the capacity of the list to newCap.
  
   //If newCap is lesser than current cap, then the list shrinks
   //and the items toward the end of the list are pruned to fit.
  
   //If newCap is greater than the current cap, then the list needs
   //to be moved to a bigger array.

   //Returns false if newCap is an invalid capacity (e.g. newCap<=0),
   //true otherwise.
   bool change_capacity(int newCap);
};


void MyList::operator=(const MyList& other)
{
   if (this==&other)
       return;
   cap=other.cap;
   csz=other.csz;
   delete[] a; //deallocates this object\'s array
   a=new int[cap]; //create a new array with the same cap as that of other\'s array
   for (int i=0;i        a[i]=other.a[i];
}


MyList::MyList(const MyList& other)
{
   cout << \"copy constructor called.\ \";
   cap=other.cap;
   csz=other.csz;
   a = new int[cap];
   for (int i=0;i        a[i]=other.a[i];
   cout << \"done.\ \";
}

MyList::MyList()
{
   cap=DEF;
   csz=0;
   a=new int[cap];
}

MyList::MyList(int ucap)
{
   if (ucap>0)
       cap=ucap;
   else
       cap=DEF;
   csz=0;
   a=new int[cap];
}

MyList::~MyList()
{
   cout << \"A MyList object is being destroyed.\ \"   ;
   delete[] a;
   cout << \"done.\ \";
}

bool MyList::add(int x)
{
   if (csz==cap)
       return false;
   a[csz]=x;
   csz++;
   return true;
}

int MyList::size() const
{
   return csz;
}

bool MyList::is_present(int x) const
{
   for (int i=0;i        if (a[i]==x)
           return true;
   return false;
}

void MyList::display() const
{
   cout << \"The list is of capacity: \" << cap << endl;
   cout << \"The current size is: \" << csz << endl;
   cout << \"Content is:\ \";
   for (int i=0;i        cout << a[i] << \" \";
   cout << endl;
}

bool MyList::remove(int x)
{
   if (!is_present(x))
       return false;
   int index=get_index(x);
   if (index==-1)
       return false;
   a[index]=a[csz-1];
   csz--;
   return true;
}

int MyList::get_index(int x) const
{
   if (!is_present(x))
       return -1;
   for (int i=0;i        if (a[i]==x)
           return i;
   return -1;
}

//Try the new functions you implemented here:
int main()
{
}

Solution

#include <iostream>

using namespace std;

class MyList
{
private:
   static const int DEF=10;
   int* a;
   int csz;
   int cap;
   //helper functions
   int get_index(int) const;

public:
   //Already implemented functions:
   MyList();
   MyList(int);
   MyList(const MyList&);
   ~MyList();

   bool add(int);
   bool remove(int);
   int size() const;
   bool is_present(int) const;
   void display() const;

   void operator=(const MyList&);

   //Implement the following:

   //Points: 10
   //This constructor will create a list of capacity cap with each element
   //in the list initialized with the value initVal.
   MyList(int cap, int initVal);


   //Points: 10
   //This function removes every occurrence of val from the list.
   //Returns false if val is not in the list, true otherwise.
   bool remove_all(int val);

   //Points: 10
   //This function swaps the contents of this list with that of other.
   //The two lists may be of different size and/or capacity.
   void swap(MyList& other);

   //Points: 20
   //This function changes the capacity of the list to newCap.

   //If newCap is lesser than current cap, then the list shrinks
   //and the items toward the end of the list are pruned to fit.

   //If newCap is greater than the current cap, then the list needs
   //to be moved to a bigger array.

   //Returns false if newCap is an invalid capacity (e.g. newCap<=0),
   //true otherwise.
   bool change_capacity(int newCap);
};


void MyList::operator=(const MyList& other)
{
   if (this==&other)
       return;
   cap=other.cap;
   csz=other.csz;
   delete[] a; //deallocates this object\'s array
   a=new int[cap]; //create a new array with the same cap as that of other\'s array
   for (int i=0;i<csz; ++i)
       a[i]=other.a[i];
}


MyList::MyList(const MyList& other)
{
   cout << \"copy constructor called.\ \";
   cap=other.cap;
   csz=other.csz;
   a = new int[cap];
   for (int i=0;i<csz; ++i)
       a[i]=other.a[i];
   cout << \"done.\ \";
}

MyList::MyList()
{
   cap=DEF;
   csz=0;
   a=new int[cap];
}

MyList::MyList(int ucap)
{
   if (ucap>0)
       cap=ucap;
   else
       cap=DEF;
   csz=0;
   a=new int[cap];
}

MyList::~MyList()
{
   cout << \"A MyList object is being destroyed.\ \"   ;
   delete[] a;
   cout << \"done.\ \";
}

bool MyList::add(int x)
{
   if (csz==cap)
       return false;
   a[csz]=x;
   csz++;
   return true;
}

int MyList::size() const
{
   return csz;
}

bool MyList::is_present(int x) const
{
   for (int i=0;i<csz; ++i)
       if (a[i]==x)
           return true;
   return false;
}

void MyList::display() const
{
   cout << \"The list is of capacity: \" << cap << endl;
   cout << \"The current size is: \" << csz << endl;
   cout << \"Content is:\ \";
   for (int i=0;i<csz; ++i)
       cout << a[i] << \" \";
   cout << endl;
}

bool MyList::remove(int x)
{
   if (!is_present(x))
       return false;
   int index=get_index(x);
   if (index==-1)
       return false;
   a[index]=a[csz-1];
   csz--;
   return true;
}

int MyList::get_index(int x) const
{
   if (!is_present(x))
       return -1;
   for (int i=0;i<csz; ++i)
       if (a[i]==x)
           return i;
   return -1;
}

//Try the new functions you implemented here:
MyList::MyList(int cap, int initVal){
   if (cap>0)
       this->cap=cap;
   else
       this->cap=DEF;
   csz = 0;
   a = new int[cap];
   for(int i = 0; i < this->cap; ++i){
       a[i] = initVal;
   }
}

bool MyList::remove_all(int val){
   if(!is_present(val))
       return false;
   else{
       while(remove(val));
       return true;
   }
}

void MyList::swap(MyList& other){
   int temp = other.csz;
   other.csz = csz;
   csz = temp;

   temp = other.cap;
   other.cap = cap;
   cap = temp;

   int *arr = other.a;
   other.a = a;
   a = arr;
}

bool MyList::change_capacity(int newCap){
   if(newCap <= 0)
       return false;
   else{
       int *newarr = new int[newCap];
       int size = newCap < cap ? newCap : cap;
       for(int i = 0; i < size; ++i){
           newarr[i] = a[i];
       }
       delete[] a;
       a = newarr;
       cap = newCap;
       csz = csz > newCap ? newCap : csz;
       return true;
   }
}


int main()
{

}

Help with c++ //This is same program that we developed in our classroom. //The class models a list with a capacity specified by the //user at runtime. //Impleme
Help with c++ //This is same program that we developed in our classroom. //The class models a list with a capacity specified by the //user at runtime. //Impleme
Help with c++ //This is same program that we developed in our classroom. //The class models a list with a capacity specified by the //user at runtime. //Impleme
Help with c++ //This is same program that we developed in our classroom. //The class models a list with a capacity specified by the //user at runtime. //Impleme
Help with c++ //This is same program that we developed in our classroom. //The class models a list with a capacity specified by the //user at runtime. //Impleme
Help with c++ //This is same program that we developed in our classroom. //The class models a list with a capacity specified by the //user at runtime. //Impleme
Help with c++ //This is same program that we developed in our classroom. //The class models a list with a capacity specified by the //user at runtime. //Impleme

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site