数据结构,顺序表的创建,查询,插入,删除。

#include<iostream>
using namespace std;
typedef struct{
    int length;
    int data[100];
}SqList;

void CreateList(SqList *&L, int a[], int n){//建立顺序表 
    L=(SqList*)malloc(sizeof(SqList));
    for(int i = 0; i < n; i++){
        L->data[i] = a[i];
    }
    L->length = n;

bool GetElem(SqList *L, int i, int &e){//获取第i个元素 
    if(i<1||i>L->length)return false;
    e = L->data[i-1];
    return true;
}

int LocateElem(SqList *L, int e){//查找元素位置 
    int i = 0;
    while(i<L->length && L->data[i]!=e)
        i++;
    if(i>=L->length)return 0;
    else return i+1;
}

bool ListInsert(SqList *&L, int i, int e){//指定位置插入元素 
    int j;
    if(i<1||i>L->length+1)
        return false;
    i--;//第一个位置 是1-1=0 
    for(j = L->length; j>i; j--)
        L->data[j] = L->data[j-1];
    L->data[i] = e;
    L->length++;
    return true;
}

bool ListDelete(SqList *&L, int i, int &e){//删除指定位置元素 
    int j;
    if(i<1||i>L->length+1)
        return false;
    i--;
    e = L->data[i];
    for(j = i; j <= L->length-1; j++)
        L->data[j] = L->data[j+1];
    L->length--;

int main(){
    SqList *L;
    int a[100];
    int n;
    cin>>n;
    for(int i = 0; i < n; i++)
        cin>>a[i];
    CreateList(L,a,n);
    int b;
    int x;
    cin>>x;//删除x位置
    if(ListDelete(L,x,b)){
        for(int i = 0 ; i < L->length; i++)
            cout<<L->data[i]<<endl;
    }else cout<<-1<<endl;
    cout<<b<<endl; 
//    cout<<LocateElem(L,b)<<endl;
//    int query;
//    int res;
//    cin>>query;
//    if(GetElem(L,query,res))cout<<res<<endl;
//    else cout<<-1<<endl;
    
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值