数据结构实验一顺序链表实现

#include<iostream>
#include<cstdio>
#include<algorithm>
const int maxsize=100;
using namespace std;
class SeqList
{private:
        int data[maxsize];
        int length;
public:
    SeqList();
    SeqList(int a[],int n);
    ~SeqList(){delete []odata;}
     int Length();
    int Get(int i);
    int Locate(int x);
    void Insert(int i,int x);
    int Delete(int i);
    void PrintList();
    int MaxElement();
    int MinElement();

};
SeqList::SeqList()
{
    length=0;
}
SeqList::SeqList(int a[],int n)
{
    length=n;
    if(n>maxsize)
        throw("参数非法");
    for(int i=0;i<n;i++)
    data[i]=a[i];
}
int SeqList::Length()
{
    return length;
}
void SeqList::PrintList()
{
    for(int i=0;i<length;i++)
        cout<<data[i]<<" ";
    cout<<endl;
}
int SeqList::Get(int i)
{if(i<1||i>length)
throw "查找位置非法";
    return data[i-1];
}
int SeqList::Locate(int x)
{for(int i=0;i<length;i++)
if(data[i]==x)
    return i+1;
return 0;

}
void SeqList::Insert(int i,int x)
{if(length>maxsize)
throw "上溢";
  if(i<1||i>length+1)
        throw "位置";
    for(int j=length;j>=i;j--)
        data[j]=data[j-1];
    data[i-1]=x;
    length++;

}
int SeqList::Delete(int i)
{
    if(length==0)
        throw "下溢";
    if(i<1||i>length)
        throw "位置";
    int x=data[i-1];
    for(int j=i;j<length;j++)
        data[j-1]=data[j];
    length--;
    return x;
}
int SeqList::MaxElement()
{
    int maxx=data[0];
    for(int i=1;i<length;i++)
        if(data[i]>maxx)
        maxx=data[i];
    return maxx;
}
int SeqList::MinElement()
{
    int minn=data[0];
    for(int i=1;i<length;i++)
        if(data[i]<minn)
        minn=data[i];
    return minn;
}
int main()
{
    int a[20];
    for(int i=0;i<10;i++)
        cin>>a[i];
    SeqList l=SeqList(a,10);
    /*cout<<l.Get(3)<<endl;
cout<<l.Locate(9)<<endl;
l.Insert(2,100);
cout<<l.Length()<<endl;
cout<<l.Delete(2)<<endl;
cout<<l.Length()<<endl;*/
cout<<l.MaxElement()<<endl;
cout<<l.MinElement()<<endl;
    l.PrintList();

    return 0;
}

猜你喜欢

转载自blog.csdn.net/sdauguanweihong/article/details/88963683