顺序表的基本炒作代码实现(自留用)

#include<stdio.h>
#define Maxsize  10
//主要用于静态的顺序表的创销增删改查的实现

//结构体

typedef struct SqList{
    int data[Maxsize];
    int length;
}seqList;

//初始化线性表同样也是销毁线性表的方法(将length设为0,无法进行增删改查)
void InitList(seqList &L){
    L.length = 0;
}

//增加元素(插入一个元素)
int InsertList(seqList &L,int index,int num){
    if(index>L.length+1||index<1)return 0;//插入的位置不对
    if(L.length>Maxsize)return 0;//顺序表满了,无法再次加入
    for(int i = L.length;i>=index;i--){
        L.data[i] = L.data[i-1];
    }
    L.data[index-1] = num;
    L.length++;
    return 1;
}

//删除一个元素
int Delete(seqList &L,int index,int &e){
    if(index<1||index>Maxsize)return 0;
    if(L.length<1)return 0;//顺序表里没有元素无法删除
    e = L.data[index-1];//将删除的元素保存下来
    for(int i = index-1;i<L.length;i++){//L.data[L.length]=NULL,向前移动后L.data[L.length-1]=NULL是合理的
        L.data[i] = L.data[i+1];
    }
    L.length--;
    return 1;
}

//按值查找
int LocateElem(seqList L,int e){
    for (int i = 0; i < L.length; ++i) {
        if(L.data[i]==e) return i+1;
    }
    return -1;
}

//按位查找
int GetElem(seqList L,int index ){
    return L.data[index--];
}

//输出顺序表里的值
void PrintList(seqList l){
    for(int i = 0;i<l.length;i++){
        printf("%d ",l.data[i]);
    }
}

int main(){
    seqList l;
    int a;
    InitList(l);
    printf("输入要输入的数据个数:");
    scanf("%d",&a);
    for(int i = 1;i<=a;i++){
        int tempNum;
        scanf("%d",&tempNum);
        InsertList(l,i,tempNum);
    }
    PrintList(l);
    printf("\n%d", LocateElem(l,2));
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚持写博客的小行星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值