顺序表的插入:ListInsert(&L, i, e)在顺序表的第i个位置插入元素e。
#include<stdio.h>
//用静态分配方式实现的顺序表
#define MaxSize 10
typedef struct{
int data[MaxSize];
int length;
} SqList;
void InitList(SqList &L)
{
L.length = 0;
}
bool ListInsert(SqList &L, int i, int e)
{
//元素插入的位置不对
if (i < 1 || i > L.length + 1)
{
return false;
}
//顺序表已经存满了,无法再插入新元素
if (i.length >= MaxSize)
{
return false;
}
for (int j = L.length; j >= i; j--)
{
L.data[j] = L.data[j-1]; //后移元素
}
L.data[i-1] = e; //插入元素
L.length++;
return true;
}
int main()
{
SqList L;
InitList(L);
ListInsert(L, 2, 3);
return 0;
}
顺序表的删除:ListDelete(&L, i, &e)删除顺序表第i个位置的元素,并用e返回被删除的数据元素。
#include<stdio.h>
#define MaxSize 10
typedef s