数据结构线性表的c++实现(数组)

#ifndef SEQLIST_H
#define SEQLIST_H


const int maxlen = 100;
template
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
#include"SeqList.h"
using namespace std;


template
SeqList::SeqList()//构造函数
{
len = 0;
}


template
int SeqList::GetLength()const//求线性表长度
{
return len;
}


template
type SeqList::GetItem(int i)const//求第i个数据元素
{
if (i >= 1 && i <= len)
return data[i - 1];
else
return NULL;
}


template
int SeqList::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
void SeqList::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
void SeqList::DeleteItem(int i)
{
if (IsEmpty())
cerr << "wrong" << endl;
if (i >= 1 && i <= len)
{
for (; i < len; i++)
data[i-1] = data[i];
len--;
}
}
template
int SeqList::IsEmpty()
{
if (len == 0)
return 1;
else
return 0;
}
template
void SeqList::ClearList()
{
len = 0;
}

你可能感兴趣的:(数据结构)