21xrx.com
2024-11-05 19:29:14 Tuesday
登录
文章检索 我的文章 写文章
C++编程实现顺序表的相关操作
2023-07-05 01:54:50 深夜i     --     --
C++编程 顺序表 相关操作

顺序表是一种线性结构,具有连续的存储空间。在C++中,我们可以利用数组来实现顺序表。实现顺序表的相关操作可以包括以下内容:创建顺序表、插入元素、删除元素、获取元素、修改元素等。

创建顺序表可以通过动态分配数组来实现。我们可以使用new运算符来动态创建数组,也可以使用vector容器来实现。需要注意的是,数组的大小应该足够大,以容纳序列中的所有元素。

插入元素可以通过指定位置来实现。我们可以使用数组的下标来指定要插入的位置,然后将插入位置之后的所有元素后移,并将要插入的元素放入指定位置。

删除元素可以通过指定位置来实现。我们可以使用数组的下标来指定要删除的位置,然后将该位置之后的所有元素前移,并将数组的长度减一。

获取元素可以通过指定位置来实现。我们可以使用数组的下标来指定要获取的位置,然后返回该位置对应的元素。

修改元素可以通过指定位置来实现。我们可以使用数组的下标来指定要修改的位置,然后将指定位置的元素替换为新的元素。

下面是一个实现顺序表的示例代码:


#include <iostream>

#include <vector>

using namespace std;

class SeqList {

private:

  vector<int> data;

  int length;

public:

  SeqList();

  ~SeqList();

  void insert(int pos, int elem);

  void remove(int pos);

  int getElem(int pos);

  void setElem(int pos, int elem);

};

SeqList::SeqList()

  length = 0;

SeqList::~SeqList()

void SeqList::insert(int pos, int elem) {

  if(pos < 0 || pos > length)

    cout << "插入位置错误!" << endl;

    return;

  

  data.push_back(0);

  for(int i = length; i >= pos + 1; i--) {

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

  }

  data[pos] = elem;

  length++;

}

void SeqList::remove(int pos) {

  if(pos < 0 || pos >= length)

    cout << "删除位置错误!" << endl;

    return;

  

  for(int i = pos; i < length - 1; i++) {

    data[i] = data[i + 1];

  }

  data.pop_back();

  length--;

}

int SeqList::getElem(int pos) {

  if(pos < 0 || pos >= length)

    cout << "获取位置错误!" << endl;

    return -1;

  

  return data[pos];

}

void SeqList::setElem(int pos, int elem) {

  if(pos < 0 || pos >= length)

    cout << "修改位置错误!" << endl;

    return;

  

  data[pos] = elem;

}

int main() {

  SeqList sqList;

  sqList.insert(0, 1);

  sqList.insert(1, 2);

  sqList.insert(2, 3);

  sqList.insert(3, 4);

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

    cout << sqList.getElem(i) << " ";

  }

  cout << endl;

  sqList.remove(1);

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

    cout << sqList.getElem(i) << " ";

  }

  cout << endl;

  sqList.setElem(1, 5);

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

    cout << sqList.getElem(i) << " ";

  }

  cout << endl;

  return 0;

}

上述代码使用vector容器来实现顺序表,包括插入元素、删除元素、获取元素、修改元素等操作。运行该代码可以得到如下结果:


1 2 3 4

1 3 4

1 5 4

上述代码仅供参考,实际应用中需要根据具体需求进行改进和优化。

  
  

评论区

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