以下是使用C++实现顺序表数据结构的基本步骤:
const int MAXSIZE = 100; // 最大容量
class SeqList {
private:
int* data; // 数组指针
int length; // 当前元素数量
int maxSize; // 最大容量
public:
SeqList(); // 构造函数
~SeqList(); // 析构函数
// 其他成员函数定义
};
SeqList::SeqList() {
data = new int\[MAXSIZE\];
length = 0;
maxSize = MAXSIZE;
}
void SeqList::insert(int value) {
if (length == maxSize) {
// 已达到最大容量,无法插入
return;
}
data\[length++\] = value;
}
void SeqList::remove(int index) {
if (index < 0 || index >= length) {
// 索引越界,无法删除
return;
}
for (int i = index; i < length - 1; ++i) {
data\[i\] = data\[i + 1\];
}
--length;
}
int SeqList::get(int index) const {
if (index < 0 || index >= length) {
// 索引越界,返回默认值(-1)
return -1;
}
return data\[index\];
}
void SeqList::print() const {
for (int i = 0; i < length; ++i) {
std::cout << data\[i\] << " ";
}
std::cout << std::endl;
}
SeqList::~SeqList() {
delete\[\] data;
}
使用这些函数,就可以创建一个基本的顺序表数据结构了。示例代码如下:
#include <iostream>
const int MAXSIZE = 100;
class SeqList {
private:
int* data;
int length;
int maxSize;
public:
SeqList();
~SeqList();
void insert(int value);
void remove(int index);
int get(int index) const;
void print() const;
};
SeqList::SeqList() {
data = new int\[MAXSIZE\];
length = 0;
maxSize = MAXSIZE;
}
SeqList::~SeqList() {
delete\[\] data;
}
void SeqList::insert(int value) {
if (length == maxSize) {
return;
}
data\[length++\] = value;
}
void SeqList::remove(int index) {
if (index < 0 || index >= length) {
return;
}
for (int i = index; i < length - 1; ++i) {
data\[i\] = data\[i + 1\];
}
--length;
}
int SeqList::get(int index) const {
if (index < 0 || index >= length) {
return -1;
}
return data\[index\];
}
void SeqList::print() const {
for (int i = 0; i < length; ++i) {
std::cout << data\[i\] << " ";
}
std::cout << std::endl;
}
int main() {
SeqList list;
list.insert(1);
list.insert(2);
list.insert(3);
list.print(); // 输出:1 2 3
list.remove(1);
list.print(); // 输出:1 3
int val = list.get(1);
std::cout << "val at index 1: " << val << std::endl; // 输出:val at index 1: 3
return 0;
}