数据结构1---线性表

C++Primer后面的高级特性看不下去,重新找了一本数据结构的书来看,加油!!书名叫《数据结构算法与C++语言描述》!

基本完成插入,查找,删除,打印,哦,对了,那个operator<<的重载感觉似懂非懂!!!

参考代码如下:

#include<iostream>

//using namespace std;

template<class T>
class LinearList{
	public:
	LinearList(int maxListSize = 0);
	~LinearList(){	}
	bool IsEmpty(){return bool(length);	};
	int Length(){return length;	};
	bool Find(int k,T& x);
	int Search(const T& a) const;
	LinearList<T>& Delete(int k,T &x);
	LinearList<T>& Insert(int k,T& x);
	void OutPut(std::ostream &out)const;
	private:
		int length;
		int MaxSize;
		T *element;
};
template<class T>
LinearList<T>::LinearList(int MaxLS){
	MaxSize = MaxLS;
	length = 0;
	element = new T[MaxLS];
}
template<class T>
bool LinearList<T>::Find(int k, T &x){
		if(k>MaxSize||k<0)return false;
		x = element[k-1];
		return true;	
}
template<class T>
int LinearList<T>::Search(const T &a)const{
	for(int i = 0;i < MaxSize; ++i){
		if(element[i] == a)return i++;
		}
	return 0;
}
template<class T>
LinearList<T>& LinearList<T>::Delete(int k,T &x){
	if(this->Find(k,x)){
		for(int i = k-1;i<MaxSize;i++){
		element[i-1] = element[i];
		}
		length = length - 1;
		std::cout<<length<<std::endl;
		return *this;
	}
}

template<class T>
LinearList<T>& LinearList<T>::Insert(int k,T &x){
	if(length == MaxSize){ std::cout<<"FULL!"<<std::endl;} 
	for(int i = MaxSize;i > k-1;i--){
		element[i] = element[i-1];		
	}
	element[k] = x;
	length++;
	return *this;
}

template<class T>	
void LinearList<T>::OutPut(std::ostream &out)const{
	for(int i = 0;i < length;i++)
	out<<element[i]<<" ";
}

template<class T>
std::ostream& operator<<(std::ostream& out,const LinearList<T>& a)
{
	a.OutPut(out);
	return out;
}

	
int main()
{
	int ftest = 0;
	LinearList<int> ll(5);
	for(int i = 0; i< 5; ++i){
		int temp =  i * i;
		ll.Insert(i,temp);
	}
	std::cout<<ll.Length()<<std::endl;
	std::cout<<ll<<std::endl;
	ll.Find(2,ftest);
	std::cout<<ftest<<std::endl;
	
	ll.Delete(2,ftest);
	std::cout<<ll.Length()<<std::endl;
	std::cout<<ll<<std::endl;

	return 0;
}

  

很多时候我都在期待3年后的自己是一个什么样的,5年后自己又是一个什么样的。因为未知,所以生命才更加精彩。
原文地址:https://www.cnblogs.com/ashen/p/4419015.html