21xrx.com
2025-03-28 16:02:58 Friday
文章检索 我的文章 写文章
C++实现顺序表的数据结构
2023-07-05 07:34:18 深夜i     --     --
C++ 顺序表 数据结构 实现

在计算机程序设计中,顺序表是一种数据结构,是最基本、也是最常用的一种线性结构。它按照线性顺序排列所有元素,并在内存地址上连续存储,可以使用数组来实现。C++语言提供了数组的支持,这为实现顺序表提供了一定的基础。

对于顺序表,我们需要定义一个数组来存储元素,同时还需要记录下以下几个关键信息:数组长度、当前元素个数、容量大小、插入、删除、查找等操作。这些信息可以用类来描述,类中包含了数组和操作函数。

下面是一个简单的C++顺序表数据结构的示例代码:

#include<iostream>
#define MaxSize 100    //定义数组大小
using namespace std;
class SeqList        //定义顺序表类
{
public:
  int data[MaxSize];         //用数组存储元素
  int length;             //当前元素个数
  int size;              //容量大小
  SeqList()              //构造函数,初始化一个空表
  
    length = 0;
    size = MaxSize;
  
  bool Insert(int pos, int item)   //向pos位置插入元素item
  {
    if (pos < 0 || pos > length || length == size)  //判断是否超出范围
      return false;
    for (int i = length; i > pos; i--)
      data[i] = data[i - 1];     //元素后移一位
    data[pos] = item;
    length++;
    return true;
  }
  bool Delete(int pos)        //删除pos位置的元素
  {
    if (pos < 0 || pos >= length)
      return false;
    for (int i = pos; i < length - 1; i++)
      data[i] = data[i + 1];     //元素前移一位
    length--;
    return true;
  }
  int Find(int item)         //查找元素并返回其位置
  {
    for (int i = 0; i < length; i++)
      if (data[i] == item)
        return i;
    return -1;            //未找到
  }
  void PrintList() const       //打印当前顺序表
  {
    for (int i = 0; i < length; i++)
      cout << data[i] << " ";
    cout << endl;
  }
};
int main()
{
  //测试代码
  SeqList list;
  list.Insert(0,1);
  list.Insert(1,2);
  list.Insert(2,3);
  list.PrintList();     //输出:1 2 3
  list.Delete(1);
  list.PrintList();     //输出:1 3
  cout << list.Find(3);   //输出:1
  return 0;
}

通过上述代码,我们可以快速地了解实现顺序表的方法,以满足实际开发需求。

  
  

评论区