21xrx.com
2025-04-02 23:27:32 Wednesday
文章检索 我的文章 写文章
C++数据结构顺序表代码的实现
2023-06-23 21:31:25 深夜i     19     0
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开始计数,因此需要一些调整。如果需要使用更好的顺序表实现,可以考虑使用向量或链表等数据结构。

  
  

评论区