main.cpp
#include <iostream>
#include"seqlist.h"
using namespace std;
int main()
{
Seqlist prt;
prt.Seqlist_init(5);
prt.empty();
prt.push_back(3);
prt.push_back(5);
prt.push_back(1);
prt.push_back(7);
prt.show();
cout<<"********任意位置插入*********"<<endl;
prt.insert(3,9);
cout<<"顺序表长度:"<<prt.size_t()<<endl;
prt.show();
cout<<endl;
cout<<"********任意位置删除*********"<<endl;
prt.erase(1);
cout<<"顺序表长度:"<<prt.size_t()<<endl;
prt.show();
cout<<endl;
cout<<"********任意位置删除*********"<<endl;
prt.pop_back();
cout<<"顺序表长度:"<<prt.size_t()<<endl;
prt.show();
cout<<endl;
cout<<"********获取任意位置元素(读写)*********"<<endl;
cout<<"at ="<<prt.at(3)<<endl;
prt.at(3)=10;
cout<<"at ="<<prt.at(3)<<endl;
cout<<"顺序表长度:"<<prt.size_t()<<endl;
prt.show();
cout<<endl;
cout<<"********降序*********"<<endl;
prt.push_back(1);
prt.push_back(7);
prt.sort(0);
cout<<"顺序表长度:"<<prt.size_t()<<endl;
prt.show();
cout<<endl;
cout<<"********升序*********"<<endl;
prt.sort(1);
cout<<"顺序表长度:"<<prt.size_t()<<endl;
prt.show();
cout<<endl;
prt.full();
return 0;
}
seqlist.cpp
#include "seqlist.h"
void Seqlist::Seqlist_init(int n)
{
per = new int[n];
len=0;
size=n;
}
bool Seqlist::emp()
{
return len==0;
}
void Seqlist::empty()
{
if(emp()!=0)
{
cout<<"顺序表为空"<<endl;
}
}
bool Seqlist::ful()
{
return len==size&&size!=0;
}
void Seqlist::full()
{
if(ful()==1)
{
cout<<"顺序表已满"<<endl;
}
}
//尾插法
void Seqlist::push_back(int Data)
{
if(len>=size)
{
cout<<"顺序表已满"<<endl;
return;
}
per[len]=Data;
len++;
return;
}
//任意位置插入
void Seqlist::insert(int por,int Data)
{
if(len>=size)
{
cout<<"顺序表已满"<<endl;
return;
}
if(len>por)
{
for(int i=len-1;i>=por-1;i--)
{
per[i+1]=per[i];
}
per[por-1]=Data;
len++;
}
else
{
// per[len]=Data;
// len++;
Seqlist::push_back(Data);
}
return;
}
// 任意位置删除
void Seqlist::erase(int por)
{
if(len==0)
{
cout<<"顺序表为空"<<endl;
return;
}
if(len<por)
{
cout<<"该位置无信息"<<endl;
}
else
{
for(int i=por-1;i<len;i++)
{
per[i]=per[i+1];
}
len--;
}
return;
}
//尾删
void Seqlist::pop_back()
{
per[len]=0;
len--;
return ;
}
//求长度
int Seqlist::size_t()
{
return len;
}
//获取任意位置元素
int &Seqlist::at(int por)
{
return per[por-1];
}
//排序
void Seqlist::sort(bool flag)
{
for(int i=1;i<len;i++)
{
int j;
for(j=0;j<len-i;j++)
{
if(flag==0)
{
if(per[j]<per[j+1])
{
int temp=per[j];
per[j]=per[j+1];
per[j+1]=temp ;
}
}
else
{
if(per[j]>per[j+1])
{
int temp=per[j];
per[j]=per[j+1];
per[j+1]=temp ;
}
}
}
}
return;
}
//输出表内容
void Seqlist::show()
{
cout<<"顺序表内容:"<<endl;
for(int i=0;i<len;i++)
{
cout<<per[i]<<" ";
}
}
seqlist.h
#ifndef SEQLIST_H
#define SEQLIST_H
#include<iostream>
using namespace std;
class Seqlist
{
private:
int *per;
int len;
int size;
public:
//初始化
void Seqlist_init(int n);
//判空
bool emp();
void empty();
//判满
bool ful();
void full();
//尾插
void push_back(int Data);
//任意位置插入
void insert(int por,int Data);
//任意位置删除
void erase(int por);
//尾删
void pop_back();
//求长度
int size_t();
//获取任意位置元素
int &at(int por);
//排序
void sort(bool flag);
//数据表打印
void show();
};
#endif // SEQLIST_H