顺序表的类定义:
class Sequence
{
public:
Sequence(int a[] , int n);//创建顺序表
~Sequence();//析构函数
int get_length();//返回长度
int seek_item(int i);//查找第i - 1位的元素
int seek_price(int num);//查找num是否存在,存在返回其位置,不存在返回-1
void insert_Seq(int i , int num);//插入元素
int remove_Seq(int i);//删除第i - 1位元素并返回这个元素
private:
int data[N];
int length;
};
存的数据是整型,利用data数组存数据。
长度为length,且数组最大限制为N = 1000。
#include <iostream>
using namespace std;
const int N = 1000;
int a[N];
class Sequence
{
public:
Sequence(int a[] , int n);//创建顺序表
~Sequence();//析构函数
int get_length();//返回长度
int seek_item(int i);//查找第i - 1位的元素
int seek_price(int num);//查找num是否存在,存在返回其位置,不存在返回-1
void insert_Seq(int i , int num);//插入元素
int remove_Seq(int i);//删除第i - 1位元素并返回这个元素
private:
int data[N];
int length;
};
Sequence :: Sequence(int a[] , int n)//创建顺序表
{
if(n > N) throw "参数非法";
for(int i = 0;i < n;i++)
{
data[i] = a[i];
}
length = n;
}
int Sequence :: get_length()//返回长度
{
return length;
}
int Sequence :: seek_item(int i)//查找第i - 1位的元素
{
if(i < 1 || i > length) throw "查找位置非法";
else return data[i - 1];
}
int Sequence :: seek_price(int num)//查找num是否存在,存在返回其位置,不存在返回-1
{
for(int i = 0;i < length;i++)
{
if(data[i] == num)
return i + 1;
}
return -1;
}
void Sequence :: insert_Seq(int i , int num)//插入元素
{
if(length + 1 > N) throw "上溢";//长度过大
if(i > 1 || i > length + 1) throw "位置异常";
for(int j = length;j >= i;j--)
{
data[j] = data[j - 1];
}
data[i - 1] = num;
length++;//总长度增加
}
int Sequence :: remove_Seq(int i)//删除第i - 1位元素并返回这个元素
{
if(length == 0) throw "下溢";//空
if(i < 1 || i > length) throw "删除位置异常";//不在范围内
int num = data[i - 1];
for(int j = i;j < length;j++)
{
data[j - 1] = data[j];
}
length--;//总长度减少
return num;
}