C++实现数据结构一 顺序表

const int Default= 100;

template class SeqList
{
private:
	Type *m_elements;
	const int m_maxsize;
	int m_currentsize;

public:
	//构造函数
	SeqList(int size = Default): m_maxsize(size), m_currentsize(0)
	{
		if(size > 0)
			m_elements = new Type[m_maxsize];
	}

	//析构函数
	~SeqList()
	{
		delete [] m_elements;
	}

	int Length() const
	{
		return m_currentsize;
	}
	int Find(Type x) const;
	int IsElement(Type x) const;
	int Insert(Type x, int i);
	int Remove(Type x);
	int IsEmpty()
	{
		return m_currentsize ==0 ;
	}
	int IsFull()
	{
		return m_currentsize == m_maxsize;
	}
	Type Get( int i );

	void Print();
};

/*
函数功能:查找指定元素在顺序表的位置
函数参数:Type 类型的 x
函数返回值:返回该元素的位置,未找到则返回 0
*/
template
int SeqList::Find(Type x) const
{
	int i;
	for(i=0; i
int SeqList::IsElement(Type x) const
{
	int i =Find(x);
	if( i == 0)
	{
		cout<
int SeqList::Insert(Type x, int i) 
{
	if(i<1 || i>m_currentsize+1 || m_currentsize == m_maxsize)
	{
		cout<<"cannot insert the element "<i-1;j--)
		m_elements[j]= m_elements[j-1];
	m_elements[i-1]= x;
	return 1;
}

/*
函数功能:移除顺序表中的指定元素
函数参数:Type类型的x
函数返回值:移除成功返回1,否则返回0
*/
template
int SeqList::Remove(Type x)
{
	int i = Find(x);
	if(i == 0)
	{
		cout<<"can not remove the element"<
Type SeqList::Get(int i)
{
	if(i<1 || i> m_currentsize)
	{
		cout<<"cannot get the element"<
void SeqList::Print()
{
	for(int i=0; i

你可能感兴趣的:(C++实现数据结构)