创建顺序表数据结构c++

img

img

img


顺序表, 就是按照上面的格式来答,有没有小伙伴会的,是在头歌上面的一个要求

以下是使用C++实现顺序表数据结构的基本步骤:

  1. 定义一个类表示顺序表,包含以下成员变量:数组指针、当前元素数量、最大容量等。
const int MAXSIZE = 100; // 最大容量

class SeqList {

private:

    int* data; // 数组指针

    int length; // 当前元素数量

    int maxSize; // 最大容量

public:

    SeqList(); // 构造函数

    ~SeqList(); // 析构函数

    // 其他成员函数定义

};
  1. 在构造函数中动态分配数组空间,并初始化长度和最大容量。

SeqList::SeqList() {

    data = new int\[MAXSIZE\];

    length = 0;

    maxSize = MAXSIZE;

}
  1. 定义插入函数,在末尾添加新元素并更新长度。
  



  

 
void SeqList::insert(int value) {

    if (length == maxSize) {

        // 已达到最大容量,无法插入

        return;

    }

    data\[length++\] = value;

}
  1. 定义删除函数,在指定位置删除元素并更新长度。
  



  

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;

}
  1. 定义查询函数,返回指定位置的元素值。
  


  

int SeqList::get(int index) const {

    if (index < 0 || index >= length) {

        // 索引越界,返回默认值(-1)

        return -1;

    }

    return data\[index\];

}
  1. 定义打印函数,将顺序表中的所有元素依次输出到控制台。
void SeqList::print() const {

    for (int i = 0; i < length; ++i) {

        std::cout << data\[i\] << " ";

    }

    std::cout << std::endl;

}
  1. 在析构函数中释放数组空间。
  


  

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;

}