1.线性表的顺序存储--类C描述
#define Max 100
typedef int ElemType;
typedef struct{
ElemType a[Max+1];//线性表的容量
int n;//线性表的表长
}sqlist;
2.普通插入算法
//插入算法
void insert(ElemType x,int i, sqlist L) {
//线性表L的第i处插入新元素x
int j;
if(L.n==Max)
error("溢出!");
else if(i<1||i>L.n+1)
error("插入位置不存在!");
else {
for(j=L.n;j>=i;j--)
L.a[j+1]=L.a[j];//元素后移
L.a[i]=x;//在第i处插入元素x
L.n++;//表长加1
}
}
3.有序插入
void insert(sqlist &L,int x) {
if (L.n<MAXSIZE)// 当顺序表不满时
{
int j=L.n;
while (j>=1 && x<L.a[j]) {
L.a[j+1]=L.a[j];
j--;// 找插入位置并后移
}
L.a[j+1]=x;
L.n++;
}
4.普通删除算法
//删除算法
void delete(ElemType x,int i,sqlist L) {
//删除表中第i个元素
int j;
if(i<1||i>L.n+1)
printf("不存在第%d个元素");
else {
for(j=i;j<=L.n;j++)
L.a[j-1]=L.a[j];//元素前移
L.n--;//表长减1
}
}