顺序表的存储结构(复习)

#include <iostream>
using namespace std;
const int maxsize=100;
class list{
    public:
    list(int a[],int n);
    void insertx(int i,int x);
    int deletex(int i);
    int get(int x);
    int locatei(int i);
    void bl();
    private:
        int length;
        int data[maxsize];


};
list :: list(int a[],int n)
{
    for(int i=0;i<n;i++)
        data[i]=a[i];
    length=n;
}
void list::insertx(int i,int x)
{
    if(length==maxsize)
      cout<<"上溢"<<endl;
    else if(i>length||i<=0)
             cout<<"位置有误"<<endl;
    else
    {
         for(int j=length;j>=i;j--)
        {
            data[j]=data[j-1];
        }
            data[i-1]=x;
            length++;
    }

}
int list::deletex(int x)
{
    int p;
    for(int i=0;i<length-1;i++)
    {
        if(data[i]==x)
        {
             p=i+1;
            for(int j=i;j<length-1;j++)
            {
                data[j]=data[j+1];
            }
        }
    }
    length--;
    return p;
}
void list::bl()
{
    for(int i=0;i<length;i++)
        cout<<data[i]<<" ";
    cout<<endl;
}
int list::get(int x)
{
    for(int i=0;i<length;i++)
    {
        if(data[i]==x)
            return i+1;
    }
    return 0;
}
 int list::locatei(int i)
 {
     if(i<=0||i>length)
        return 0;
     return data[i-1];
 }

int main()
{
int a[5]={1,2,3,5,8};
list l(a,5);
l.bl();
cout<<"删除的是第"<<l.deletex(9)<<"个元素"<<endl;
l.bl();
cout<<"插入:"<<endl;
l.insertx(2,9);
l.bl();
cout<<"元素2是第"<<l.get(2)<<"个元素"<<endl;
cout<<"第3个元素是"<<l.locatei(3)<<endl;
}

有问题请留言,我也是新手,大家一起解决

发布了41 篇原创文章 · 获赞 5 · 访问量 3007

猜你喜欢

转载自blog.csdn.net/qq_43573743/article/details/103206528