21xrx.com
2025-03-26 11:35:13 Wednesday
文章检索 我的文章 写文章
C++实现顺序表的创建
2023-07-13 18:37:48 深夜i     --     --
C++ 顺序表 创建

顺序表是一种基于数组实现的线性表数据结构,通过一组连续的内存空间存储数据元素,并且支持随机访问元素。C++作为一种高级编程语言,提供了丰富的数据类型和强大的指针操作,可以方便地实现顺序表数据结构。

下面是实现顺序表的C++代码示例:

#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 最大容量
typedef int T; // 元素类型
class SeqList{
private:
  T data[MAXSIZE]; // 用数组存储元素
  int length; // 当前元素个数
public:
  SeqList() length = 0; // 默认构造函数
  bool isEmpty() return length == 0; // 判断是否为空表
  bool isFull() return length== MAXSIZE; // 判断是否已满
  int getLength() return length; // 返回当前元素个数
  T get(int i){ return data[i]; } // 返回第i个元素的值
  bool set(int i, T x){ // 设置第i个位置的元素为x
    if(i<0 || i>=length) return false;
    data[i] = x;
    return true;
  }
  bool insert(int i, T x){ // 在第i个位置插入元素x
    if(i<0 || i>length || isFull()) return false;
    for(int j=length-1; j>=i; j--){
      data[j+1] = data[j]; // 从后往前挪动元素
    }
    data[i] = x;
    length++;
    return true;
  }
  bool remove(int i){ // 删除第i个位置的元素
    if(i<0 || i>=length) return false;
    for(int j=i; j<length-1; j++){
      data[j] = data[j+1]; // 从前往后挪动元素
    }
    length--;
    return true;
  }
  void display(){ // 输出元素
    for(int i=0; i<length; i++){
      cout << data[i] << " ";
    }
    cout << endl;
  }
};
int main(){
  SeqList list; // 创建空表
  cout << "IsEmpty? " << list.isEmpty() << endl; // 1
  cout << "IsFull? " << list.isFull() << endl; // 0
  cout << "Length: " << list.getLength() << endl; // 0
  list.insert(0, 1); // 插入元素
  list.insert(1, 2);
  list.insert(2, 3);
  list.display(); // 输出元素
  list.remove(1); // 删除元素
  list.display(); // 输出元素
  return 0;
}

以上代码实现了一个可变长的顺序表,支持插入、删除、修改、查找、判断空表和满表等功能。其中,私有变量`data`存储元素,私有变量`length`记录当前元素个数。公有函数`isEmpty()`、`isFull()`、`getLength()`、`get()`、`set()`、`insert()`、`remove()`、 `display()`分别对应了上述功能。

总的来说,C++实现顺序表并不难,关键是要正确理解顺序表数据结构的特点,并且善于运用指针和数组来操作数据。使用顺序表可以高效地存储和访问数据,是程序设计中常用的数据结构之一。

  
  

评论区