class ArrayList{//顺序表类的定义 public: //初始化:按照顺序表容量申请一段连续的内存空间,同时确定增量大小 ArrayList(int size, int in); bool isEmpty(); //判断顺序表是否为空 int findData(dataType d); //查找d元素是否在顺序表中 //查找指定位序的元素,找到的元素保存在d中(插入成功返回true,不成功返回false) bool findData(int p, dataType& d); bool insertData(int p, dataType d); //在位置p处插入元素d //删除位置i处的元素,删除的元素保存在d中(删除成功返回true,不成功返回false) bool deleteData(int p, dataType& d); void showAll(); //显示表中全部元素 void clear(); //清空顺序表 ~ArrayList(); //销毁顺序表,把顺序表占用的内存空间交还给内存 private: dataType* data; //表中元素 int maxSize, inc, length; //初始容量、增量和长度 };怎么写
时间: 2024-03-26 12:39:48 浏览: 56
基础 知识点/面试题总结 : (必看:+1: ): Java 基础常见知识点&面试题总结(上) Java 基础常见知识点&面试
这是一个C++类的定义,实现了一个顺序表。以下是该类的具体实现代码:
```cpp
#include <iostream>
using namespace std;
template<class dataType>
class ArrayList {
public:
// 初始化顺序表,申请一段连续的内存空间,同时确定增量大小
ArrayList(int size, int in) {
maxSize = size;
inc = in;
length = 0;
data = new dataType[maxSize];
}
// 判断顺序表是否为空
bool isEmpty() {
return length == 0;
}
// 查找d元素是否在顺序表中
int findData(dataType d) {
for (int i = 0; i < length; i++) {
if (data[i] == d) {
return i;
}
}
return -1;
}
// 查找指定位序的元素,找到的元素保存在d中(插入成功返回true,不成功返回false)
bool findData(int p, dataType& d) {
if (p < 0 || p >= length) {
return false;
}
d = data[p];
return true;
}
// 在位置p处插入元素d
bool insertData(int p, dataType d) {
if (p < 0 || p > length || length == maxSize) {
return false;
}
// 如果当前数组空间不够,则扩容
if (length == maxSize) {
dataType* newdata = new dataType[maxSize + inc];
for (int i = 0; i < length; i++) {
newdata[i] = data[i];
}
maxSize += inc;
delete[] data;
data = newdata;
}
// 将p及其后面的元素后移一位
for (int i = length - 1; i >= p; i--) {
data[i + 1] = data[i];
}
// 将d插入到p的位置
data[p] = d;
length++;
return true;
}
// 删除位置i处的元素,删除的元素保存在d中(删除成功返回true,不成功返回false)
bool deleteData(int p, dataType& d) {
if (p < 0 || p >= length) {
return false;
}
// 将p后面的元素前移一位
d = data[p];
for (int i = p; i < length - 1; i++) {
data[i] = data[i + 1];
}
length--;
return true;
}
// 显示表中全部元素
void showAll() {
for (int i = 0; i < length; i++) {
cout << data[i] << " ";
}
cout << endl;
}
// 清空顺序表
void clear() {
length = 0;
}
// 销毁顺序表,把顺序表占用的内存空间交还给内存
~ArrayList() {
delete[] data;
}
private:
dataType* data; // 表中元素
int maxSize, inc, length; // 初始容量、增量和长度
};
```
其中,dataType是模板参数,可以是任何类型。您可以根据自己的需求修改模板参数和实现代码。
阅读全文