顺序表基本操作之插入

插入(一)

#include
#include

#define MaxSize 10  //定义最大长度 

typedef struct
{
    int data[MaxSize];  //用静态数组存放元素
    int length; //顺序表的长度
}SqList;    //顺序表的类型定义

void InsertList(&SqList L, int i, int e)
{
    for(int j == L.lenth; j >= i; j--)
    {
        L.data[j1] = L.data[j-1];
    }
    
    L.data[i-1] = e;
    L.length++;
}

int main(int argc, char *const argv[]){
    SqList L;       //声明一个顺序表
    InitList(L);    //初始化顺序表
    //.....省略其他操作
    InsertList(L,3,3);  //插入
    return 0;
    
}

插入(二)

  • 在(一)的基础上加入了i值的范围得判断
#include
#include

#define MaxSize //定义最大长度

typedef struct 
{
    int data[MaxSize];  //用静态数组存放数据元素
    int length; //顺序表的当前长度
}SqList;    //顺序表的类型定义

bool ListInsert(Sqlist &L, int i, int e)
{
    if(i < 1 || i > L.length+1) //判断i的范围是否有效
    {
        return false;
    }
    
    if(L.length >= L.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;
}

你可能感兴趣的:(顺序表基本操作之插入)