SeqList


//工程名:SeqList
//文件名:SeqList.h
//功能:演示循序表的基本操作
//依赖文件:SeqList.cpp,main.cpp

#ifndefSeqList_H
#defineSeqList_H
constintMaxSize=100;
template
<classT>
classSeqList
...{
public:
SeqList()
...{length=0;}
SeqList(Ta[],
intn);
voidInsert(inti,Tx);
TDelete(
inti);
intLocate(Tx);
voidPrintList();
private:
Tdata[MaxSize];
intlength;
}
;
#endif


//工程名:SeqList
//文件名:SeqList.cpp
//功能:演示循序表的基本操作
//依赖文件:SeqList.h,main.cpp

#include
"SeqList.h"
template
<classT>
SeqList
<T>::SeqList(Ta[],intn)
...{
if(n>MaxSize)throw"参数非法";
for(inti=0;i<n;i++)
data[i]
=a[i];
length
=n;
}



template
<classT>
voidSeqList<T>::Insert(inti,Tx)//Insert执行有点问题?已解决!
...{
if(length>=MaxSize)throw"上溢";
if(i<1||i>length)throw"位置异常";//原:i>length+1
for(intj=length;j>=i;j--)//原:j>=i
data[j]=data[j-1];//第j个元素存放在数组下标为j-1处
data[i-1]=x;//或data[j]=x;第i个元素排在下标i-1处
length++;
}



template
<classT>
TSeqList
<T>::Delete(inti)
...{
if(length==0)throw"下溢";
if(i<1||i>length)throw"位置异常";
Tx
=data[i-1];
for(intj=i;j<length;j++)
data[i
-1]=data[i];
length
--;
returnx;
}


template
<classT>
intSeqList<T>::Locate(Tx)
...{
for(inti=0;i<length;i++)
if(data[i]==x)returni+1;//下标为i的元素等于x,返回其序号i+1
return0;
}


template
<classT>
voidSeqList<T>::PrintList()
...{
for(inti=0;i<length;i++)
cout
<<data[i]<<endl;
}


//工程名:main.cpp
//文件名:SeqList
//功能:演示循序表的基本操作
//依赖文件:SeqList.h,SeqList.cpp

//主函数
#include<iostream.h>
#include
"SeqList.cpp"
voidmain()
...{
intr[]=...{1,2,3,4,5};
SeqList
<int>a(r,5);
cout
<<"执行插入操作前数据为:"<<endl;
a.PrintList();
try
...{
a.Insert(
2,6);//原:3
}

catch(char*s)
...{
cout
<<s<<endl;
}

cout
<<"执行插入操作后数据为:"<<endl;
a.PrintList();
//Insert执行有点问题?
cout<<"值为3的元素位置为:"<<endl;
cout
<<a.Locate(3)<<endl;
cout
<<"执行删除第一个元素操作,删除前数据为:"<<endl;
a.PrintList();
try
...{
a.Delete(
1);
}

catch(char*s)
...{
cout
<<s<<endl;
}

cout
<<"删除后数据为:"<<endl;
a.PrintList();
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值