顺序表 C++模板实现
来源:互联网 发布:成都理工大学网络教育 编辑:程序博客网 时间:2024/06/05 00:28
#include <iostream>using namespace std;template <typename T>class list{private:int maxLen; //顺序表能允许的最大长度int num; //当前表中的元素个数T *data; //保存T类型数组首地址public:list(int max); //构造函数~list(); //析构函数void add(const T x); //在最后一个元素后增加一个元素xvoid insert(int i , T x); //在下标为i的元素处增加一个元素xvoid dele(int i); //删除下标为i的元素void set(int i, T x); //设置下标为i的元素的值int locate(T x); //查找第一个与x相同元素的下标T get(int i); //返回下标为i的元素void printAll(); //打印整个顺序表};//构造函数实现template <typename T>list<T>::list(int max){maxLen = max; //顺序表最大长度data = new T[maxLen]; //动态数组num=0;}//析构函数实现template <typename T>list<T>::~list(){delete [] data; //释放动态数组}//在最后一个元素后增加一个元素x,实现部分template <typename T>void list<T>::add(T x){data[num]= x;num++;}//在下标为i的元素处增加一个元素x,实现部分template <typename T>void list<T>::insert(int i ,T x){if(i<0 && i>num-1){ //判断插入位置是否介于下标0与num-1之间cerr<<"插入位置有误"<<endl;exit(1);}else if(num == maxLen){ //判断表是否满了cerr<<"顺序表已满,无法插入" <<endl;exit(1);}int j = num;while(j>i){data[j] = data[j-1];j--;}data[i] = x;num++;}//删除下标为i的元素,实现部分template <typename T>void list<T>::dele(int i){if(i<0 && i>num-1){ //判断删除位置是否介于下标0与num-1之间cerr<<"删除位置有误"<<endl;exit(1);}int j = i+1;while(j<num){data[j-1] = data[j];j++;}num--;}//设置下标为i的元素的值,实现部分template <typename T>void list<T>::set(int i , T x){data[i] = x;}//查找第一个与x相同元素的下标,实现部分template <typename T>int list<T>::locate(T x) {for(int i = 0 ; i < num ; i++){if(data[i] == x)return i;}return -1;}//返回下标为i的元素,实现部分template <typename T>T list<T>::get(int i){return data[i];}//打印整个顺序表,实现部分template <typename T>void list<T>::printAll(){for(int i = 0 ; i <num ; i++){cout<<data[i]<<endl;}}void main(){list<int> a(10); //创建元素类型为int,最大长度为10的顺序表a.add(1); //增加一个元素,元素值为1a.add(2); //增加一个元素,元素值为2a.add(3); //增加一个元素,元素值为3a.add(4); //增加一个元素,元素值为4a.add(5); //增加一个元素,元素值为5a.insert(4,0); //在下表为4的元素,插入一个值为0的元素a.dele(4); //删除上次插入的元素a.set(0,9); //设置下标为0的元素的值为9a.printAll(); //打印所有元素的值}
0 0
- c++(模板类)实现顺序表
- 【C++】用模板实现顺序表
- 【C++】用模板实现顺序表Vector
- 模板实现顺序表
- 模板实现顺序表
- 模板实现顺序表
- 模板实现顺序表
- [数据结构] 顺序表的实现(c++/类模板)
- 【C++】模板类顺序表
- C++模板实现顺序表
- 顺序表 C++模板实现
- C++模板实现顺序表
- 模板实现动态顺序表
- 用模板实现顺序表
- 类模板实现顺序表
- 顺序表的模板实现
- 模板类实现顺序表
- 顺序表---模板类实现
- C语言每日小练(一)——3n+1问题
- 鼠标悬浮注释
- svn命令总结
- poj2148(二维背包)
- 烟花易冷,人事易分
- 顺序表 C++模板实现
- 《Ext JS 4.2实战》目录
- 一个和spring整合的依赖注入的servlet,子类可自动装配依赖Bean
- VC++中数值与字符串相互转化(总结)
- Sweet Snippet系列 之 元素删除
- UIButton 设置title位置
- HDU 2191 珍惜现在,感恩生活(多重背包)
- kmp的next数组的运用(求字符串的最小循环节)
- tomcat内存溢出