顺序表基本操作cpp实现
时间: 2023-09-26 12:02:41 浏览: 83
顺序表是一种常见的数据结构,它的基本操作有初始化、获取元素、插入元素、删除元素和查找元素。在C++中,可以使用数组来实现顺序表。
首先,我们需要定义一个顺序表的结构体,其中包含数组和长度变量。
```cpp
const int MAX_SIZE = 100; // 假设顺序表的最大容量为100
struct ArrayList {
int data[MAX_SIZE]; // 用于存储元素的数组
int length; // 当前元素个数
};
```
接下来是初始化操作,该操作可以将顺序表的长度设置为0。
```cpp
void init(ArrayList& list) {
list.length = 0;
}
```
然后是获取元素的操作,我们需要传入顺序表和待获取元素的索引,返回对应索引位置的元素。
```cpp
int get(ArrayList list, int index) {
if (index < 0 || index >= list.length) {
// 索引越界,返回一个非法值
return -1;
}
return list.data[index];
}
```
插入元素的操作需要传入顺序表、待插入的元素和插入位置的索引。该操作会在指定位置插入元素,并将原来位置及之后的元素向后移动一位。
```cpp
void insert(ArrayList& list, int element, int index) {
if (index < 0 || index > list.length || list.length >= MAX_SIZE) {
// 索引越界或顺序表已满,插入失败
return;
}
// 后移元素
for (int i = list.length - 1; i >= index; i--) {
list.data[i + 1] = list.data[i];
}
// 在指定位置插入元素
list.data[index] = element;
list.length++;
}
```
删除元素的操作需要传入顺序表和待删除元素的索引。该操作会将指定位置的元素删除,并将之后的元素向前移动一位。
```cpp
void remove(ArrayList& list, int index) {
if (index < 0 || index >= list.length) {
// 索引越界,删除失败
return;
}
// 前移元素
for (int i = index + 1; i < list.length; i++) {
list.data[i - 1] = list.data[i];
}
list.length--;
}
```
最后是查找元素的操作,该操作需要传入顺序表和待查找的元素值,返回元素在顺序表中的索引。
```cpp
int find(ArrayList list, int element) {
for (int i = 0; i < list.length; i++) {
if (list.data[i] == element) {
return i;
}
}
return -1; // 未找到元素
}
```
这些基本操作的实现可以帮助我们对顺序表进行各种操作,包括初始化、获取元素、插入元素、删除元素和查找元素。
阅读全文