namespace __4_CS
{
//顺序表的数据结构
public class sqlist
{
public int[] v; //存放数据的数组,注意这里数据是从0开始存放,并没有严格的按照从1开始存放
public int n; //n 里面有元素的个数
//顺序表的插入操作
//分为如下 i要插入的位置,n顺序表的长度
//i<0 出错
//0<=i<=n
//i=n+1
//i>n+1 出错
//向sqllist里面的第i个位置插入value
public bool ins(ref sqlist msqlist, int i, int value)
{
if(i<0 || i>msqlist.n+1)
{//i<0 || i>n+1
return false;
}
if(i == (msqlist.n+1))
{//i=n+1
msqlist.v[n + 1] = value;
}
else
{//0<=i<=n
for(int j=n;j>=i;j--)
{
v[j+1] = v[j];
}
v[i] = value;
}
msqlist.n++;
return true;
}
//msqlist要删除的线性表
public bool del(ref sqlist msqlist,int i)
{
if(i<0 || i>msqlist.n)
{//如果删除超出的范围
return false;
}
else if(i ==msqlist.n-1)
{数组从0开始
msqlist.n--;
}
else
{
for(int j=i;j<=msqlist.n-1;j++)
{//数组从0开始
msqlist.v[j - 1] = msqlist.v[j];
}
msqlist.n--;
}
return true;
}
}
}
//以后的数组一定从1开始,否则讨厌死了。