21xrx.com
2024-12-22 21:45:26 Sunday
登录
文章检索 我的文章 写文章
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++实现顺序表并不难,关键是要正确理解顺序表数据结构的特点,并且善于运用指针和数组来操作数据。使用顺序表可以高效地存储和访问数据,是程序设计中常用的数据结构之一。

  
  

评论区

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