考研数据结构笔记--顺序表

结构体定义

#define maxSize 100

//顺序表的结构体定义
typedef struct{
    int data[maxSize];  //存放顺序表元素的数组(以int类型为例)
    int length;         //存放顺序表的长度
}Sqlist;                //顺序表类型的定义

顺序表的操作

//初始化顺序表
void initList(Sqlist &L){
    L.length = 0;
}

//返回第一个值等于e的元素的位置
int findElem(Sqlist L, int e){
    int i;
    for(i = 0; i < L.length; ++i)
        if(e < L.data[i])
            return i;               //若找到,则返回下标
    return -1;                      //没找到,返回-1,作为失败标记
}

//求指定元素位置,用e返回
int getElem(Sqlist L, int p, int &e){
    if(p < 0 || p > L.length - 1)
        return 0;
    e = L.data[p];
    return 1;
}

//在顺序表L的第p个位置插入元素e
int insertElem(Sqlist &L, int p, int e){
    int i;
    if(p < 0 || p > L.length || L.length == maxSize)    //位置错误或表长已经达到
        return 0;                                       //顺序表的最大允许值,此时插入不成功,返回0
    for(i = L.length - 1; i >= p; --i)
        L.data[i + 1] = L.data[i];                      //从后往前,逐个元素往后移动一个位置
    L.data[p] = e;                                      //将e放在插入位置p上
    ++(L.length);                                       //表内元素多了一个,表长加一
    return 1;                                           //插入成功返回1
}

//删除顺序表L中下标为p的元素
int deleteElem(Sqlist &L, int p, int &e){
    int i;
    if(p < 0 || p > L.length - 1)
        return 0;                       //位置错误返回0
    e = L.data[p];                      //将被删除元素赋值给e
    for(i = p; i < L.length - 1; ++i)   //从位置p开始,将其后边的元素逐个前移一个位置
        L.data[i] = L.data[i + 1];
    --(L.length);                       //删除元素表长减一
    return 1;                           //删除成功返回1
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值