顺序表插入算法Insert
template <class DataType>
void SeqList<DataType>::Insert(int n,DataType x)
{
if(length>=MaxSize) throw “上溢”; //记得这里加“=”号,因为如果顺序表的
//长度等于存放数据元素的数组的长度,
// 那么就没有位置可以让其他数据插入顺序表了
if(i<1||i>length+1) throw "位置"; //i可以是length+1,因为可以在
//最后一个元素后面插入新元素
for(j=length;j>=i;j--) //小心这里的条件,别漏“=”!
data[j]=data[j-1];
data[i-1]=x;
length++;
}
顺序表删除算法Delete
</pre><pre name="code" class="cpp">template <class DataType>
DataType SeqList<DataType>::Delete(int i)
{
if(length==0) throw "下溢";
if(i<1||i>length) throw "位置"; //这里又不同于插入操作,i是大于length,
//i不能是length+1,因为在length+1的位置上
//没有元素,那何来删除之说?
x=data[i-1]; //因为这个函数结束时要返回一个值给被
//调用处,所以在此要把被删除数作为返回值
for(j=i;j<length;j++) //小心这里,不要写成j<=length,
//j在这里是表示数组的下标,顺序表中每个元素
//被存储的数组下标是它在顺序表中的序号减1
data[j-1]=data[j];
length--;
return x;
}