线性表顺序存储结构的C++模板类程序源代码

原创 2016年05月31日 18:22:37

线性表顺序存储结构说白了就是数组,类定义了两个成员变量:一个足够大的数组和元素个数变量。下面是自己写的一个线性表类,可以直接使用或增加成员函数使用。

#ifndef LINEARLIST_H
#define LINEARLIST_H
#include <iostream>
const int MAXSIZE=100;
template<typename ElementType>
class LinearList
{
	private:
		ElementType Data[MAXSIZE];
		int last;
	public:
		LinearList();
		~LinearList(){
		}
		int Find(ElementType);
		void Insert(int ,ElementType);
		void Delete(int);		
		bool IsEmpty();
		bool IsFull();
		void Print();
		ElementType operator[](int);
};


template<typename ElementType>
LinearList<ElementType>::LinearList():last(-1)
{
}
template<typename ElementType>
int LinearList<ElementType>::Find(ElementType x)
{
	for(int i=0;i<=last;i++)
	{
		if(Data[i]==x)
		{
			std::cout<<"We find the element "<<x<<" that you search, it is at NO." <<i<<" position !"<<std::endl;
			return i;
		}		
	}
	std::cout<<"We did not find the element that you search!"<<std::endl;
	return -1;
}
template<typename ElementType>
void LinearList<ElementType>::Insert(int i ,ElementType x)
{
	if(IsFull())
	{
		std::cout<<"The List is full now!";
		return;
	}	
	for(int j=last;j>=i;j--)
	{
		Data[j+1]=Data[j];
	}
	Data[i]=x;
	last++;
	return;
}
template<typename ElementType>
void LinearList<ElementType>::Delete(int i)
{
	if(IsEmpty())
	{
		std::cout<<"The List is empty now!"<<std::endl;
		return;
	}
	if(i>last+1)
	{
		std::cout<<"The element you delete is out of the list!"<<std::endl;
		return;
	}
	for(int j=i;j<last;j++)
	{
		Data[j]=Data[j+1];
	}
	last--;
	return;	
}		
template<typename ElementType>
bool LinearList<ElementType>::IsEmpty()
{
	if(last==-1)
		return true;
	else
		return false;
}
template<typename ElementType>
bool LinearList<ElementType>::IsFull()
{
	if(last==MAXSIZE)
		return true;
	else 
		return false;
}
template<typename ElementType>
void LinearList<ElementType>::Print()
{
	std::cout<<"The list is printed in the next:\n";
	for(int i=0;i<=last;i++)
	{
		std::cout<<Data[i]<<" ";
	}
	std::cout<<std::endl;
}
template<typename ElementType>
ElementType LinearList<ElementType>::operator[](int i)
{
	return Data[i];
}
#endif


版权声明:本文为博主原创文章,未经博主允许不得转载。

线性表链式存储结构的C++模板类程序源代码

线性表链式存储结构就是链表,刚开始定义该结构的时候,一直困惑于链表的成员变量是否只是一个节点头指针,觉得为什么不能将节点结构体的数据和next节点指针直接作为链表的成员变量呢?现在回过头来想想,是混淆...

线性表的顺序存储结构

  • 2012年12月14日 15:32
  • 37KB
  • 下载

数据结构-线性表顺序存储(C/C++)

顺序表的基本算法的实现,实现如下功能:         BOOL InitList(List *list)    //创建线性表         void DestroyList(List *list...

线性表的顺序存储结构

  • 2011年10月02日 12:01
  • 40KB
  • 下载

2.2线性表顺序存储结构

  • 2014年09月10日 16:48
  • 398KB
  • 下载

线性表顺序存储结构实验程序 Version 2.0

线性表顺序存储结构实验程序 增加了数据排序功能,优化了输出程序和主菜单//***************************************************** //线性表顺序存...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线性表顺序存储结构的C++模板类程序源代码
举报原因:
原因补充:

(最多只允许输入30个字)