21xrx.com
2024-05-20 17:27:09 Monday
登录
文章检索 我的文章 写文章
C++数据结构顺序表代码的实现
2023-06-23 21:31:25 深夜i     --     --
C++ 数据结构 顺序表 实现 代码

顺序表是一种基本的数据结构,它是一个线性结构,元素之间的位置是连续的。常见的顺序表有数组和向量。在C++中,我们可以使用数组来实现顺序表。下面是一个简单的C++数据结构顺序表的代码实现。


#include<iostream>

#include<cstdlib>

using namespace std;

#define MAXSIZE 100 // 定义数组长度为100

// 定义顺序表结构体

struct SeqList{

  int data[MAXSIZE]; // 存储元素的数组

  int length; // 当前长度

};

// 初始化顺序表

void init(SeqList &L)

  L.length = 0;

// 插入元素

bool insert(SeqList &L, int elem, int pos){

  if(pos < 1 || pos > L.length+1 || L.length >= MAXSIZE)

    return false;

  for(int i = L.length; i >= pos; i--)

    L.data[i] = L.data[i-1];

  L.data[pos-1] = elem;

  L.length++;

  return true;

}

// 删除元素

bool del(SeqList &L, int pos){

  if(pos < 1 || pos > L.length)

    return false;

  for(int i = pos; i < L.length; i++)

    L.data[i-1] = L.data[i];

  L.length--;

  return true;

}

// 查找元素

int search(SeqList L, int elem){

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

    if(L.data[i] == elem)

      return i+1;

  return 0;

}

// 输出顺序表

void display(SeqList L){

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

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

  cout << endl;

}

int main(){

  SeqList L;

  init(L); // 初始化顺序表

  insert(L, 1, 1); // 在第1个位置插入元素1

  insert(L, 2, 2); // 在第2个位置插入元素2

  insert(L, 3, 3); // 在第3个位置插入元素3

  cout << "顺序表L的元素:";

  display(L); // 输出顺序表

  del(L, 2); // 删除第2个位置的元素

  cout << "删除第2个位置后的顺序表L的元素:";

  display(L); // 输出删除后的顺序表

  cout << "元素3的位置:" << search(L, 3) << endl; // 查找元素3的位置

  return 0;

}

在该代码中,我们定义了一个顺序表结构体,其中包含一个存储元素的数组和当前长度。初始化顺序表的函数使用init实现,在插入元素时,使用insert函数实现。删除元素和查找元素也分别使用del和search函数实现。最后,我们使用display函数输出顺序表。

需要注意的是,在插入和删除元素时,必须保证位置不越界,也不能超过数组最大长度。此外,数组下标从0开始,而顺序表的位置是从1开始计数,因此需要一些调整。如果需要使用更好的顺序表实现,可以考虑使用向量或链表等数据结构。

  
  

评论区

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