标签:修改 name png defaults code com 指定 根据 一个
顺序表的一般特性
顺序表数据结构
const int defaultSize = 10; template <typename DataType> class SeqList { public: //构造函数 SeqList(int size = defaultSize) { if (size>0) //检查赋予的顺序表大小,如果合法则分配相应大小的内存 { maxSize = size; elements = new DataType[maxSize]; //分配内存大小 } } //析构函数 ~SeqList() { delete[] elements; //内存回收 } int getLength() { return length; } bool insertElement(DataType data); //向表尾插入新元素 bool deleteElement(int location); //删除指定位置的元素 DataType getElement(int location); //返回指定位置的元素 bool changeElement(int location,DataType newData); //修改指定位置的元素值 private: DataType *elements; int maxSize; //顺序表最大大小 int length; //顺序表的有效长度 };
顺序表插入操作
template<typename DataType> bool SeqList<DataType>::insertElement(DataType data) { int currentIndex = length; //记录新元素的插入位置 if (length>=maxSize) //判断顺序表是否已满 { return false; //顺序表已满,返回false,插入不成功 } else { elements[currentIndex] = data; //将新元素插入到顺序表表位 length++; return true; } }
删除指定位置的元素
template<typename DataType> bool SeqList<DataType>::deleteElement(int location) { if (location>=length||location<0) { return false; } else { for (int i=location;i<length;i++) { elements[i] = elements[i + 1]; //将指定位置之后的元素依次往前移动覆盖前一个元素 } length--; //顺序表长度减一 return true; } }
获取指定位置的元素
template<typename DataType> DataType SeqList<DataType>::getElement(int location) { if (location<0||location>length) //判断位置索引是否合法 { std::cout << "参数无效" << endl; } else { return elements[location]; //返回指定位置的元素 } }
修改指定位置的元素
template<typename DataType> bool SeqList<DataType>::changeElement(int location, DataType newData) { if (location<0||location>=length) //验证位置索引参数是否有效 { return false; } else { elements[location] = newData; //将新元素赋给指定位置 return true; } }
测试
int main() { SeqList<int> list(10); //建立顺序表 for (int i = 0; i < 10; i++) list.insertElement(i); //插入数据实现初始化 for (int i = 0; i < list.getLength(); i++) cout << list.getElement(i) << " "; //输出初始化后的顺序表 cout << endl; list.deleteElement(3); //删除索引为3的元素 for (int i = 0; i < list.getLength(); i++) cout << list.getElement(i) << " " ; //输出删除后的顺序表 cout << endl; list.changeElement(5, 44); //将顺序表索引为5的元素修改为44 for (int i = 0; i < list.getLength(); i++) cout << list.getElement(i) << " "; //输出修改后的顺序表 cout << endl; return 0; }
结果
标签:修改 name png defaults code com 指定 根据 一个
原文地址:https://www.cnblogs.com/suomeimei/p/10447831.html