数据结构:线性表(顺序存储)顺序表类(实现顺序表的创建,输出,插入,删除功能)

    线性表顺序存储一般就是以数组的形式存储,一切都是对数组的操作,下面给出一个类定义的头文件,和一个实例

顺序表类:文件名 sq_LList.h

 

#include <iostream>

using namespace std;
template <class T>
class sq_LList
{
private:
	int mm; //存储空间容量	
	int nn; //顺序表长度
	T *v; //顺序表存储空间首地址
public:
	sq_LList()
	{
		mm=0;         
		nn=0;
		return;
	}
	sq_LList(int);  //建立空顺序表,申请存储空间
	void prt_LList();  //顺序输出顺序表中的元素与顺序表长度
	int flag_sq_LList();  //检测顺序表的状态
	void ins_sq_LList(int,T);//在表的指定元素前插入新元素
	void del_sq_LList(int);    //在表中删除指定元素
};
template <class T>
sq_LList <T>::sq_LList(int m)
{
	mm=m;      //存储空间容量
	v=new T[mm];//动态申请存储空间
	nn=0;   //顺序表长度为0,即建立空顺序表
	return;
}
template <class T>
void sq_LList<T>::prt_LList()
{
	int i;
	cout<<"nn="<<nn<<endl;
	for(i=0;i<nn;i++)
		cout<<v[i]<<endl;
	return ;
}

template <class T>
int sq_LList<T>::flag_sq_LList()
{
	if(nn==mm)
	{
        cout<<"空间已满"<<endl;
		return(-1);
	}
	if(nn==0)
	{
		cout<<"顺序表为空"<<endl;
		return(0);
	}
	return(1);
}
template <class T>
void sq_LList<T>::ins_sq_LList(int i,T b)
{
	int k;
	if(nn==mm)
	{
		cout<<"已满"<<endl;return;
	}
	if(i>nn)
		i=nn+1;
	if(i<1)
		i=1;
	for(k=nn;k>=i;k--)
	{
		v[k]=v[k-1];//从最后一个元素直到第i个元素都后移一个位置,注意数组是从0开始
	}
	v[i-1]=b;
	nn=nn+1;
	return ;
}
template<class T>
void sq_LList<T>::del_sq_LList(int i)
{
	int k;
	if(nn==0)
	{
		cout<<"表为空"<<endl;
		return;
	}
	if(i<1||i>nn)
	{
		cout<<"表中没有这个位置的元素"<<endl;
		return;
	}
	for(k=i;k<nn;k++)
	{
		v[k-1]=v[k];
	}
	nn=nn-1;
	return ;
}


具体应用实例:文件名 test.cpp

#include "sq_LList.h"
#include <stdlib.h>
int main()
{
	sq_LList<double> s1(100);
	cout<<"第一次输出顺序表对象s1:"<<endl;
	s1.prt_LList();
	s1.ins_sq_LList(0,1.5);
	s1.ins_sq_LList(1,2.5);
	s1.ins_sq_LList(4,3.5);
	cout<<"第二次输出顺序表对象s1:"<<endl;
	s1.prt_LList();
	s1.del_sq_LList(0);
	s1.del_sq_LList(2);
	cout<<"第三次输出顺序表对象s1:"<<endl;
	s1.prt_LList();
	system("pause");
	return 0;
}


输出结果:

第一次输出顺序表对象s1:
nn=0
第二次输出顺序表对象s1:
nn=3
2.5
1.5
3.5
表中没有这个位置的元素
第三次输出顺序表对象s1:
nn=2
2.5
3.5
请按任意键继续. . .


 

阅读更多
个人分类: c.c++.数据结构
上一篇VS2010中,创建C/C++ Console Application,结果一闪而过解决办法
下一篇数据结构:线性表(顺序存储)顺序栈类(实现创建,输出,入栈出栈,读栈顶元素功能)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭