i just write a class below :
Code:
#include<iostream>
using namespace std;
const int DefaultSize = 100;
class List
{
public:
List();
List(size_t size);
~List();
bool insert(const int);
void ClearList();
bool IsEmpty();
size_t ListLen();
bool GetElem(size_t , int );
void append(size_t,int);//在第i个位置插入数值
void Display();
void remove(size_t);
private:
size_t MaxSize;
size_t list_len;
int *element;
};
List::List()
{
MaxSize = DefaultSize;
list_len = 0;
element = new int[MaxSize];
}
List::List(size_t size)
{
MaxSize = size;
list_len = 0;
element = new int[MaxSize];
}
List::~List()
{
delete []element;
}
bool List::insert(const int a)
{
if (list_len == MaxSize)
return false;
element[list_len++] = a;
return true;
}
bool List::IsEmpty()
{
return list_len == 0;
}
bool List::GetElem(size_t size, int e)
{
if(size > list_len)
return false;
e = element[size];
return true;
}
void List::Display()
{
if(IsEmpty())
cout << "List is empty" << endl;
else
for (size_t i = 0; i < list_len; ++i)
cout << element[i] << " ";
}
size_t List::ListLen()
{
return list_len;
}
void List::append(size_t i, int num)
{
if(i < 0 || i > MaxSize)
{
cout << "append invalid" << endl;
}
if (i == list_len)
{
this->insert(num);
}
else
{
for(size_t j = list_len-1; j != i-2; --j)
{
if(j == list_len-1)
this->insert(element[j]);
else
element[j+1] = element[j];
}
element[i-1] = num;
}
}
void List::remove(size_t i)
{
if(i < 0 || i > list_len)
{
cout << "remove invalid" << endl;
}
else
{
for(size_t j = i; j != list_len+1; ++j)
{
element[j-1] = element[j];
}
--list_len;
}
}
}
but when i wan to write
Code:
void List::merge(List &L)
{
if(L.IsEmpty())
return;
size_t size_L = L.ListLen();
if (list_len+size_L > MaxSize)
{
}
}
i found if
Code:
list_len+size_L > MaxSize
how can i go ahead ?can anyone help ?