编辑代码

#include <iostream>
using namespace std;

#define MAX_SIZE 100 // 定义顺序表的最大容量

class SequenceList {
private:
    int *data; // 动态数组
    int length; // 当前长度

public:
    SequenceList() {
        data = new int[MAX_SIZE]; // 分配内存
        length = 0; // 初始化长度
    }

    ~SequenceList() {
        delete[] data; // 释放内存
    }

    void insert(int index, int value) {
        if (index < 0 || index > length || length >= MAX_SIZE) {
            cout << "插入位置不合法或顺序表已满" << endl;
            return;
        }
        // 移动元素
        for (int i = length; i > index; --i) {
            data[i] = data[i - 1];
        }
        data[index] = value; // 插入新值
        length++; // 增加长度
    }

    void remove(int index) {
        if (index < 0 || index >= length) {
            cout << "删除位置不合法" << endl;
            return;
        }
        // 移动元素
        for (int i = index; i < length - 1; ++i) {
            data[i] = data[i + 1];
        }
        length--; // 减少长度
    }

    int get(int index) {
        if (index < 0 || index >= length) {
            cout << "获取位置不合法" << endl;
            return -1; // 返回-1表示出错
        }
        return data[index];
    }

    void display() {
        for (int i = 0; i < length; ++i) {
            cout << data[i] << " ";
        }
        cout << endl;
    }

    int size() {
        return length;
    }
};

int main() {
    SequenceList list;

    // 插入元素
    list.insert(0, 10);
    list.insert(1, 20);
    list.insert(1, 15); // 在位置1插入15

    cout << "顺序表元素: ";
    list.display();

    // 删除元素
    list.remove(1); // 删除位置1的元素

    cout << "删除后顺序表元素: ";
    list.display();

    // 获取元素
    int value = list.get(0); // 获取位置0的元素
    cout << "顺序表第0个元素: " << value << endl;

    return 0;
}