#include
#include
#include
#define Size 10
using namespace std;
template
class List
{
//virtual void Clear( )=0;
virtual void Append( )=0;
virtual void Delete( T num)=0;
virtual void print( )=0;
virtual void sort( )=0;
};
template
class arrList:public List
{
private:
T *list;
int maxSize;
int curLen;
public:
arrList() {};
arrList(const arrList
arrList(const int size)
{
maxSize=size;
curLen=0;
list=new T[maxSize];
}
~arrList()
{
delete []list;
}
// virtual void Clear( );
virtual void Append( );
virtual void Delete(T num );
// friend iostream & operator<<( iostream os, const arrList
virtual void print();
virtual void sort( );
friend void merge(arrList
arrList & operator=(const arrList
};
template
arrList
{
if(this == & ar)
return * this;
else
{
for(int i = 0; i
}
return * this;
}
template
arrList
{
list = new T[ar.maxSize];
maxSize = ar.maxSize;
curLen = ar.curLen;
for(int i = 0; i
}
template
void arrList
{
srand(time(NULL));
while(1)
{
if(curLen>=maxSize)
break;
else
{
list[curLen]=rand();
curLen++;
}
}
}
template
void arrList
{
int i,j;
for(i=0;i
if(list[i]%num==0)
{
for(j=i;j
curLen--;
}
}
}
template
//iostream & operator << ( iostream os, const arrList
void arrList
{
int i;
for(i=0;i< maxSize;i++)
cout< cout<
template
void arrList
{
int i,j;
T temp;
for(j = 0; j < maxSize; j++)
for(i = j + 1; i < maxSize; i++)
if(list[i] {
temp=list[j];
list[j]=list[i];
list[i]=temp;
}
}
template
void merge(arrList
{
int i;
for(i=0;i
c.list[i] = a.list[i];
c.curLen++;
}
for(i=0;i
c.list[a.maxSize+i] = b.list[i];
c.curLen++;
}
}
int main()
{
arrList
a.Append();
cout << "a: " << endl;
a.print();
b.Append();
cout << "b: " << endl;
b.print();
arrList
arrList
c.sort();//为什么a c 同时更改
cout<<"c:\n";
c.print();
d.sort();
// b)合并这两个链表为一个
arrList
merge(e, a,b);
cout<<"e:\n";
e.print();
// 分别删除第一链表中能被5整除的结点和第二个链表中能被3整除的结点。
a.Delete(5);
cout<<"a after delete:\n";
a.print();
cout<
cout<<"b after delete:\n";
b.print();
return 0;
}
arrList
arrList
你用的是继承下来赋值操作符,自己重写赋值操作符