【数据结构】顺序表

本文详细介绍了数据结构中的顺序表,包括结构体定义、初始化、元素插入和删除算法。在元素插入时,通过调整索引来实现元素后移;在元素删除时,使用后继元素覆盖待删除元素的位置完成移除。
摘要由CSDN通过智能技术生成

1.顺序表结构体定义

typedef struct//定义顺序表类型
{
    int data[MAXSIZE]; //静态数组定义

    int length; //表长,即实际元素个数 -1=下标
    int last;   //指向数组最后一个元素的下标

}SeqList;

可以用 last 也可用 lenght,但last从-1开始,lenght从0开始

2.顺序表的初始化

SeqList* lnitList()//线性表初始化
{
    SeqList* L;
    L=malloc(sizeof(SeqList));//为线性表L分配地址空间

    if(!L)//判断分配是否成功
    {
       return ERROR;
    }

    L->length=0;   //初始化
    L->last=-1;    //初始化

    return L;
}

 

3.元素插入算法

Status ListInsert(SqList* L,int i,int e){

    int j=0; //计数器

    if (L->length == MAXSIZE){  //线性表已满
        return ERROR;
    }
    if (i<1 || i>L->length+1){ //当i小于1或大于数组最大长度+1 取值非法
        return ERROR;
    }
    if (i<=L->length)//若插入位置不在表尾
    {

        for(j=L->length;j>=i;j--) //核心代码:见下文分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值