21xrx.com
2024-09-19 09:23:55 Thursday
登录
文章检索 我的文章 写文章
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;

}

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

  
  

评论区

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