#include "stdafx.h"
#include<iostream>
using namespace std;
const int maxsize = 100;//顺序表最大输入范围
template<class T>
class setlist
{
private:
T data[maxsize];//存放数据的数组date;
int length;//线性表长度;
public:
setlist()
{
lenfth = 0;
}
setlist(T a[], int n)
{
if (n > maxsize) throw"参数非法";
for (int i = 0; i < n; i++) {
data[i] = a[i];
length = n;
}
}
~setlist(){}
int Length() { return length; }
T Get(int i) {
if (i<1 || i>length) throw"查找位置非法";
else
return data[i - 1];
}
int Locate(T x) {
for (int i = 0; i < length; i++)
if (data[i] == x) return i + 1;
return 0;
}
void 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++;
}
T Delete(int i){
if (length == 0)throw"下溢";
if (i<1 || i>length)throw"位置";
T x = data[i - 1];
for (int j = i; j < length; j++)
data[j - 1] = data[j];
length--;
return x;
}
void PrintList(){
for (int i = 0; i < length; i++)
cout<<data[i];
}
};
int main()
{
int test[5] = { 1,2,3,4,5 };
setlist<int> a = setlist<int>(test, 5);
a.PrintList();
cout<<endl;
cout << "长度为:"<<a.Length() << endl;
cout<<"位置为:"<<a.Locate(2)<<endl;
cout << "数值为:" << a.Get(1) << endl;
cout<<"删除的数据为:"<<a.Delete(1)<<endl;
a.PrintList();
cout << endl;
system("pause");
}
C++顺序表实例
最新推荐文章于 2022-05-29 11:38:40 发布