#define SEQLIST_H
const int maxlen = 100;
template<typename type>
class SeqList
{
private:
type data[maxlen];
int len;
public:
SeqList();
~SeqList() {};
int GetLength()const;
type GetItem(int i)const;
int GetLocate(const type &item)const;//获得元素item的位置
void GetInside(const type &item, int i);
void DeleteItem(int i);
int IsEmpty();//表为空返回1,否则为0;
void ClearList();
};
#endif
#include<iostream>
#include"SeqList.h"
using namespace std;
template<typename type>
SeqList<type>::SeqList()//构造函数
{
len = 0;
}
template<typename type>
int SeqList<type>::GetLength()const//求线性表长度
{
return len;
}
template<typename type>
type SeqList<type>::GetItem(int i)const//求第i个数据元素
{
if (i >= 1 && i <= len)
return data[i - 1];
else
return NULL;
}
template<typename type>
int SeqList<type>::GetLocate(const type &item)const
{
for (int i = 1; i <= len; i++)
if (data[i - 1] == item)break;
if (i > len)return 0;
return i;
}
template<typename type>
void SeqList<type>::GetInside(const type &item, int i)
{
if (i >= 1 && i <= len)
{
for (int p = len; p != i; p--)
{
data[p] = data[p - 1];
}
data[i] = item;
len++;
}
}
template<typename type>
void SeqList<type>::DeleteItem(int i)
{
if (IsEmpty())
cerr << "wrong" << endl;
if (i >= 1 && i <= len)
{
for (; i < len; i++)
data[i-1] = data[i];
len--;
}
}
template<typename type>
int SeqList<type>::IsEmpty()
{
if (len == 0)
return 1;
else
return 0;
}
template<typename type>
void SeqList<type>::ClearList()
{
len = 0;
}