List(2)List的顺序实现

list.h


/*-----------------------------------------------   
Created By EverSteins   
Email:EverSteins@gmail.com  
转载请注明出处  
------------------------------------------------*/ 

template<class List_entry>
class List
{
public:
	List():count(0);
	int size() const;
	bool full() const;
	bool empty() const;
	void clear();
	void traverse(void (*visit)(List_entry&));
	Error_code retrieve(int position,List_entry &x)const;
	Error_code replace(int position,const List_entry &x);
	Error_code remove(int position,List_entry &x);
	Error_code insert(int position,const List_entry &x);
protected:
	int count;
	List_entry entry[max_list];
};


list.cc

/*-----------------------------------------------   
Created By EverSteins   
Email:EverSteins@gmail.com  
转载请注明出处  
------------------------------------------------*/ 
#include "list.h"

template<class List_entry>
int List<List_entry>::size() const
{
	return count;
}

template<class List_entry>
bool List<List_entry>::full() const
{
	return count>=max_list;
}

template<class List_entry>
bool List<List_entry>::empty() const
{
	return count<=0;
}

template<class List_entry>
void List<List_entry>::clear()
{
	count=0;
}

template<class List_entry>
void List<List_entry>::traverse(void (*visit)(List_entry&))
{
	for (int i=0;i<count;i++)
		(*visit)(entry[i]);
}

template<class List_entry>
Error_code List<List_entry>::insert(int position,const List_entry &x)
{
	if (full())
		return overflow;
	if (position < 0 || position > count)
		return range_error;
	for (int i=count-1;i>=position;i--)
		entry[i+1]=entry[i];
	entry[position]=x;
	count++;
	return success;
}


template<class List_entry>
Error_code List<List_entry>::remove(int position,List_entry &x)
{
	if (empty())
		return underflow;
	if (position<0 || position>=count)
		return range_error;
	x=entry[position];
	for (int i=position;i<count-1;i++)
		entry[i]=entry[i+1];
	count--;
	return success;
}

template<class List_entry>
Error_code List<List_entry>::retrieve(int position,List_entry &x)const
{
	if (position<0 || position>=count)
		return range_error;
	x=entry[position];
	return success;
}

template<class List_entry>
Error_code List<List_entry>::replace(int position,const List_entry &x)
{
	if (position<0 || position>=count)
		return range_error;
	entry[position]=x;
	return success;
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值