设计一个静态数组存储结构的顺序表类,要求编程实现如下任务:建立一个线性表,首先依次输人数据元素1,2,3,…,10,然后删除数据元素6,最后依次显示当前线性表中的数据元素。要求采用顺序表实现,假设该顺序表的数据元素个数在最坏情况下不会超过50个。
#include<iostream>
using namespace std;
const int MaxSize=100;
template <class DataType>
class SeqList
{
private:
DataType data[MaxSize];
int length,i,j,x;
public:
SeqList(){ length=0; }
SeqList( DataType a[], int n)
{
if(n>MaxSize)
throw"参数非法";
for(i=0;i<n;i++)
data[i]=a[i];
length=n;
}
~SeqList(){ }
int Length()
{
return length;
}
DataType Get(int i);
int Located(DataType x);
void Insert(int i,DataType x);
DataType Delete(int i)
{
if(length==0)
throw"下溢";
if(i<1||i>length)
throw"位置";
x=data[i-1];
for(j=i;j<length;j++)
data[j-1]=data[j];
length--;
return x;
}
void PrintList()
{
for(i=0;i<length;i++)
cout<<data[i];
}
};
void main()
{
int n=10, a[10]={1,2,3,4,5,7,6,8,9,10};
int i;
SeqList<int>alist(a,n);
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
alist.Delete(6);
alist.PrintList();
}