InitList( *List )             初始化线性表,创建一个空的线性表List
InsertElement( *List,index ,elem )    在线性表List的下标index中插入elem
DeletElement( *List, index, *elem)    删除线性表中第i个元素,并返回删除元素的指针
GetLength( *List )          获得线性表的长度

顺序表:

1、 定义线性表的最大存储空间

2、线性表里需要有统一类型的元素

typed int ElementType;相当于给int起了个别名叫ElementType

typedef  struct  {

    int id;

    char *name;

}ElementType;

3、定义顺序表结构

typedef struct  {

    ElementType datas [MAX_SIZE];   元素集合,有限个

    int length;   长度

}

    顺序存储结构

a1  a2  a3.....位置从  1  开始

0    1     2.....下标 ,从 0 开始

2019.10.28  顺序表插入算法

向顺序表中的index下标处插入一个元素

1、验证插入后的元素空间是否超过MAX_SIZE

2、index 的值是否合法  [ 0 , MAX_SIZE - 1 ] 

3、插入的index应在lengh之内

4、从第length-1个下标开始,前面一个元素赋值给后面一个元素

bool ListInsert(SeqList * &L, int i, ElemType e)
{
    int j;
    if(i < 1 || i > L->length + 1 )
    {
        return false;
    }

    i--;

    for(j = L->length; j > i; j--)  //把长度 length的值赋给 j,如果 j大于要插入的下标 i,则循环,并把前一个值赋给后一个值
        L->data[j] = L->data[j - 1];

    L->data[i] = e;      //进行到下标为 i时,将 e赋给下标为 i的那个数
    L->length++;         //这个数组的长度加一

    return true;
}

 

01-08 09:16