21xrx.com
2024-11-22 08:00:00 Friday
登录
文章检索 我的文章 写文章
C++实现顺序表的方法
2023-07-07 09:19:08 深夜i     --     --
C++ 实现 顺序表 方法

顺序表是一种常见的数据结构,它可以用来存储一组连续的元素。C++语言中可以通过数组来实现顺序表,也可以通过动态内存分配来实现动态顺序表。

实现步骤:

1. 定义结构体或类,包括数据成员和成员函数。


struct SeqList {

  int *data; // 存储元素的数组指针

  int length; // 当前元素个数

  int capacity; // 数组容量

  SeqList(int cap = 10) { // 构造函数

    data = new int[cap];

    length = 0;

    capacity = cap;

  }

  ~SeqList() { // 析构函数

    delete[] data;

  }

  int getLength() const { return length; } // 获取当前元素个数

  int getCapacity() const { return capacity; } // 获取数组容量

  void clear() { length = 0; } // 清空顺序表

  bool isEmpty() const { return length == 0; } // 判断顺序表是否为空

  bool isFull() const { return length == capacity; } // 判断顺序表是否已满

  void show() { // 打印顺序表中的元素

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

      cout << data[i] << " ";

    cout << endl;

  }

  bool insert(int pos, int val) { // 在指定位置插入元素

    if (pos < 0 || pos > length || isFull()) return false;

    for (int i = length - 1; i >= pos; i--)

      data[i + 1] = data[i];

    data[pos] = val;

    length++;

    return true;

  }

  bool remove(int pos) { // 删除指定位置的元素

    if (pos < 0 || pos > length - 1 || isEmpty()) return false;

    for (int i = pos; i < length - 1; i++)

      data[i] = data[i + 1];

    length--;

    return true;

  }

  int get(int pos) const { // 获取指定位置的元素

    assert(pos >= 0 && pos <= length - 1);

    return data[pos];

  }

  bool set(int pos, int val) { // 修改指定位置的元素

    if (pos < 0 || pos > length - 1) return false;

    data[pos] = val;

    return true;

  }

  int find(int val) const { // 查找元素是否存在

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

      if (data[i] == val) return i;

    return -1;

  }

};

2. 调用构造函数创建顺序表对象。


SeqList list(10);

3. 调用成员函数对顺序表进行操作。

插入元素:


list.insert(0, 1); // 在第一个位置插入元素1

list.insert(1, 2); // 在第二个位置插入元素2

list.insert(2, 3); // 在第三个位置插入元素3

list.show(); // 输出:1 2 3

删除元素:


list.remove(1); // 删除第二个位置的元素2

list.show(); // 输出:1 3

修改元素:


list.set(1, 4); // 将第二个位置的元素3修改为4

list.show(); // 输出:1 4

查找元素:


cout << list.find(1) << endl; // 输出:0

cout << list.find(2) << endl; // 输出:-1(不存在)

获取元素:


cout << list.get(1) << endl; // 输出:4

清空顺序表:


list.clear();

list.show(); // 输出空行

以上就是C++实现顺序表的方法。通过定义结构体或类,以及实现相应的成员函数,可以方便地对顺序表进行操作。顺序表的插入、删除、修改、查找等操作都比较简单易懂,适合初学者入门。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复