AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

顺序表操作

作者: 作者的头像   marvelous_tune ,  2025-03-27 10:41:52 · 广东 ,  所有人可见 ,  阅读 1


0


//初始化[动态分配]
void initial(SqList& L){
    L.data = (int*) malloc( sizeof(int)*Maxsize );  //单元素占字节数 * 元素个数
    // L.data是数组名————>int型指针!
    L.length=0;
}

//按【下标】查找      第k个(从0开始)
int getElem(SqList L, int k){
    //合法性判断  1>空  2> 越界
    if(SqList.length==0){
        return -1;
    }
    if(k<0 || k>=L.length){
        return -1;
    }

    //合法
    return L.data[k];
}

//按【值】查找    返回下标
int LocateElem(SqList L, int e){
    for(int i=0;i<L.length;i++){
        if(L.data[i] == e){
            return i;
        }
    }
    return -1;
}

//插入   元素 + 插入位置
bool Insert(SqList& L, int e, int k){
    //合法性判断  1>满   2>越界
    if(L.length==Maxsize){
        return false;
    }
    if(k<0 || k>=L.length){
        return false;
    }

    //【从后往前】移动元素——>腾出下标为k的位置
    for(int i=length-1; i>k; i--){
        L.data[i+1]=L.data[i];
    }
    L.data[k]=e;  //插入元素

    L.length++;   //更新长度!!!

    return true;
}

//按【下标】删除   元素
bool delete(SqList& L, int k){
    //合法性判断  1>空  2>越界
    if(L.lenth==0) return false;
    if(k<0 || k>=L.length) return false;

    //【从前往后】前移覆盖
    for(int i=k;i<L.length; i++){
        L.data[i]=L.data[i+1];
    }
    L.length--;
    return true;
}

//按【值】删除
bool delete(SqList& L, int e){
    //合法性判断  1>空  2>越界
    if(L.lenth==0) return false;
    if(k<0 || k>=L.length) return false;

    bool exist=false;

    //先找到下标k!!!
    for(int i=0;i<L.length;i++){
        if(L.data[i]==e){
            k=i;
            exist=ture;
            break;
        }
    }

    //如果k找到
    if(exist){
        for(int i=k;i<L.length;i++){
            L.data[i]=L.data[i+1];
        }
        L.length--;
        return true;
    }

    return false;
}

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息