#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;

#define ElemT int
#define Maxs 20

struct SeList
{
    ElemT data[Maxs];
    int listlen;
};

//初始化
void Initial_list(SeList *S)
{
    memset(S->data,0,sizeof(S));
    S->listlen=0;
    cout<<"初始化完成!"<<endl;
}

//输入一个顺序表
bool cin_list(SeList *S,int n)
{
    if(n<0||n>Maxs)
    {
        return false;
    }

    for(int i=0;i<n;i++)
    {
        cin>>S->data[i];
        S->listlen++;
    }
    return true;

}

//插入元素
bool Insert_list(SeList *S,int m,ElemT e)
{
    if(m<1||m>Maxs) return false;
    for(int j=S->listlen;j>m-1;j--)
    {
        S->data[j]=S->data[j-1];
    }
    S->data[m-1]=e;
    S->listlen++;
    return true;
}


//查找元素
int search_list(SeList S,ElemT x)
{
    for(int i=0;i<S.listlen;i++)
    {
        if(S.data[i]==x)
            return i+1;
    }
    return false;
}

//删除元素
bool dele_list(SeList *S,int n)
{
    if(n<1||n>S->listlen) return false;
    for(int j=n;j<S->listlen;j++)
    {
        S->data[j-1]=S->data[j];
    }
    S->listlen--;
    return true;
}

//打印顺序表
void print_list(SeList *S)
{
    cout<<"---当前顺序表元素为---"<<endl;
    for(int i=0;i<S->listlen;i++)
    {
        cout<<S->data[i]<<" ";
    }
    cout<<endl;
    cout<<"当前表长度为:"<<S->listlen<<endl;
}
void cin_list_(SeList *S)
{
    int n;
    bool flag;
    cout<<"请输入顺序表长度:"<<endl;
    cin>>n;
    cout<<"请输入元素:"<<endl;
    flag=cin_list(S,n);
    if(flag)
    {
        cout<<"创建成功!"<<endl;
        print_list(S);
    }
}

void insert_list(SeList *S)
{
    int m;
    ElemT e;
    bool flag;
    cout<<"请输入要插入元素的位置及值:"<<endl;
    cin>>m>>e;
    flag=Insert_list(S,m,e);
    if(flag)
    {
        cout<<"插入元素成功!"<<endl;
        print_list(S);
    }
}

void Search_list(SeList *S)
{
    int x; int flag;
    cout<<"请输入你要查找的元素值:"<<endl;
    cin>>x;
    flag=search_list(*S,x);
    if(flag)
    {
        cout<<"你要查找的元素位置在:"<<flag<<endl;
        print_list(S);
    }


}

void Dele_list(SeList *S)
{
    int n;bool flag;
    cout<<"请输入要删除元素的位置:"<<endl;
    cin>>n;
    flag=dele_list(S,n);
    if(flag)
    {
        cout<<"删除元素成功!"<<endl;
        print_list(S);
    }
}
int main()
{
    SeList S;
    Initial_list(&S);
    cin_list_(&S);
    insert_list(&S);
    Search_list(&S);
    Dele_list(&S);
}

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。