【文件属性】:
文件名称:c++单链表实现功能
文件大小:3KB
文件格式:TXT
更新时间:2013-05-23 08:32:44
单链表实现功能
#include
using namespace std;
const int MaxSize=100;
template //模板类
class SeqList
{
public:
SeqList() {length=0;} //无参构造函数
SeqList(T a[],int n); //有参构造函数
~SeqList(){} //析构函数
int Length() {return length;} //求线性表长度
T Get(int i); //按位查找
int Locate(T x); //按值查找
void Insert (int i, T x); // 插入函数
T Delete(int i); //删除函数
void PrintList(); //遍历线性表,按序号依次输出各个元素。
private:
T data[MaxSize];
int length;
};
template
SeqList::SeqList(T a[],int n) //有参构造函数
{
if(n>MaxSize)throw"参数非法";
for(int i=0;i
void SeqList::Insert(int i,T x) //插入函数
{
if (length>=MaxSize) throw "上溢";
if(i<1||i>length+1) throw "位置异常";
for (int j=length;j>=i;j--)
data[j]=data[j-1];
data[i-1]=x;
length++;
}
template
T SeqList::Get(int i) //按位查找函数
{
if(i<1||i>length) throw "查找位置非法";
else return data[i-1];
}
template
int SeqList::Locate(T x) //按值查找函数
{
for (int i=0;i
T SeqList::Delete(int i) //删除函数
{
if (int length=0)throw "下溢";
if(i<1||i>length)throw "位置异常";
T x=data[i-1];
for(int j=i;j
void SeqList::PrintList() // 遍历线性表
{
for (int i=0;i s1(a,7);
int flag=1;
while(flag)
{
menu();
cin>>j;
switch(j)
{
case 1:
{
try
{
cout<<"显示要插入的位序及数值:"<>i>>x;
cout<>i;
x=s1.Delete(i);
cout<<"已删除:"<>x;
s1.Locate(x);
cout<<"所查数据在第"<>i;
s1.Get(i);
cout<<"该位置元素为:"<