线性表顺序存储结构的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++ 线性表顺序存储结构的实现

线性表顺序存储实现元素的插入,删除和读取
  • jihao0919
  • jihao0919
  • 2016年09月23日 00:39
  • 438

C++ 线性表顺序存储结构

随着逐渐学习,更深入的体会了C是面向过程,C++是面向对象这一说法。下面的代码用类封装了一个顺序存储的线性表,仅供参考,有错误请指教,毕竟新手。 将元素类型定义为别名,可以方便更改。对于顺序表,最基...
  • LLLCSDN
  • LLLCSDN
  • 2015年12月09日 15:16
  • 2258

一、(1)C++ 实现简单的线性表(顺序存储结构)

作为新手,初学C++和数据结构,也想发发博文,分享点自己的学习所得,也请诸位看官帮忙指正,能提提意见是极好的了! 我的第一篇博文就分享下简单的用C++实现的线性表吧!以下是鄙人自己写的简单代码: #i...
  • kukutengteng
  • kukutengteng
  • 2014年03月09日 11:16
  • 2775

线性表顺序存储结构完整可执行代码

线性表顺序存储结构完整可执行代码
  • cckevincyh
  • cckevincyh
  • 2015年05月09日 21:53
  • 3663

数据结构---线性表----顺序存储结构

1.线性表定义         线性表(LIST):零个或多个数据元素的有限序列。    关键知识点:         1.首先它是一个序列,元素之间室友顺序的;         2.线性表强调的是有...
  • sinat_22055459
  • sinat_22055459
  • 2016年03月18日 14:12
  • 5977

线性表的顺序存储结构及该结构的插入与删除

顺序存储定义线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 顺序存储方式 线性表的顺序存储结构,就是在内存中找了块地儿,通过站位的形式,把一定内存空间给占了,...
  • J_1234567890
  • J_1234567890
  • 2016年05月06日 10:52
  • 3636

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

栈顺序存储结构利用一个大数组,相当于简化了的线性表,线性表具有查找、插入、删除等功能,而栈则简化为只包括压入、弹出这种更有针对性的功能。下面是自己写的栈的顺序存储C++模板类源代码: //linear...
  • Alex123980
  • Alex123980
  • 2016年05月31日 21:38
  • 366

线性表顺序存储结构的c语言实现

ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,…,an},每个元素的类型均为DataType。 其中,除第一个元素a1外,每一个元素有且只有一个直接前驱...
  • wxwd1
  • wxwd1
  • 2014年05月13日 13:29
  • 1387

线性表_顺序存储结构和链式存储结构的优缺点比较(区别)

线性表的定义: 线性表(Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。 其中: 数据元素的个数n定义为表的长度 = “lis...
  • fengxiao8
  • fengxiao8
  • 2017年12月01日 21:43
  • 471

线性表(静态顺序存储结构)c语言描述

#include #define MAXSIZE 50typedef int ElemType;typedef struct{ ElemType list[MAXSIZE]; int size;}Li...
  • laobai0335
  • laobai0335
  • 2009年06月10日 11:24
  • 1047
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线性表顺序存储结构的C++模板类程序源代码
举报原因:
原因补充:

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