数据结构笔记:顺序表

利用顺序表求两个集合的并集

#include <iostream>
using namespace std;
const int MaxSize=100;
template <class T>
class seqlist
{
public:
    //seqlist();
    seqlist(T a[],int n);
    //~seqlsit();
    int Length()
    {
        return length;
    }
    T Get(int i);
    int Locate(T x);
    void Insert(int i,T x);
    void Delete(int i);
    void Printlist();
private:
    T data[MaxSize];
    int length;
};
template<class T>
seqlist<T>::seqlist(T a[],int n)       //构造函数
{
    int i;
    if(n>MaxSize)
        cout<<"参数非法";
    for(i=0; i<n; i++)
        data[i]=a[i];
    length=n;
}
template<class T>
T seqlist<T>::Get(int i)       //按值查找
{
    if(i>=1&&i<=length)
    {
        return data[i-1];
    }
    else return 999;
}
template<class T>
int seqlist<T>::Locate(T x)
{
    for(int i=0; i<length; i++)
        if(data[i]==x)

            return i+1;

         return 999;
}
template<class T>
void seqlist<T>::Insert(int i,T x)      //插入函数
{
    int j;
    if(length>=MaxSize)
        cout<<"上溢";
    if(i<1||i>length+1)
        cout<<"位置";
    for(j=length; j>=i; j--)
    {
        data[j]=data[j-1];
    }
    data[i-1]=x;
    length++;
}
template<class T>
void seqlist<T>::Delete(int i)       //删除函数
{
    int x;
    int j;
    if(length==MaxSize)
        cout<<"溢出";
    if(i<1||i>length)
        cout<<"位置";
    x=data[i-1];
    for(j=i; j<length; j++)
        data[j-1]=data[j];
    length--;
    cout<<x;
}
template<class T>
void seqlist<T>::Printlist()
{
    cout << "length=" << length << endl;
    int i;
    for(i=0; i<length; i++)
        cout<<data[i]<<" ";
}

int main()
{
    int b[100],i,n,c,p[100],j,m,x;
    cout<<"集合A的元素个数及元素"<<endl;
    cin>>n;
    for(i=0;i<n;i++)
    {
    cin>>c;
    b[i]=c;
    }
    seqlist<int> list(b,n);
    list.Printlist();
    cout<<endl<<"集合B的元素个数及元素"<<endl;
    cin>>m;
    for(j=0;j<m;j++)
    {
    cin>>x;
    p[j]=x;
    }
    seqlist<int> List(p,m);
    List.Printlist();
    for(int t=1;t<=n;t++)
    {
        if(List.Locate(list.Get(t))==999)
        {
            List.Insert(1,list.Get(t));
        }
    }
    List.Printlist();
    //cin>>i;
    //if(list.Get(i)<999)
    //{cout<<list.Get(i);}
    //else cout<<"查找位置超限";

}

```![在这里插入图片描述](https://img-blog.csdn.net/20181020131624443?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzAxMDgzOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![在这里插入图片描述](https://img-blog.csdn.net/20181020131612544?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzAxMDgzOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

猜你喜欢

转载自blog.csdn.net/weixin_43010839/article/details/83212625