顺序表的基本操作代码C++
时间: 2024-10-04 22:03:33 浏览: 29
C++顺序表的基本操作(使用模版类)
5星 · 资源好评率100%
在C++中,顺序表是一种线性的数据结构,它通过连续的内存地址存储元素。基本的操作通常包括插入、删除和访问元素。这里是一个简单的顺序表实现示例,使用数组作为底层存储:
```cpp
#include <iostream>
// 定义顺序表节点
struct ListNode {
int data;
ListNode* next; // 指向下一个元素的指针
};
// 初始化顺序表
ListNode* createList() {
return nullptr; // 初始为空列表
}
// 在列表末尾添加元素
void append(ListNode*& head, int value) {
ListNode* newNode = new ListNode{value, nullptr};
if (head == nullptr) { // 如果列表为空
head = newNode;
} else {
ListNode* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 删除指定值的第一个匹配项
void removeElement(ListNode*& head, int value) {
if (head == nullptr) {
return;
}
if (head->data == value) {
ListNode* temp = head;
head = head->next;
delete temp;
return;
}
ListNode* current = head;
while (current->next != nullptr && current->next->data != value) {
current = current->next;
}
if (current->next != nullptr) {
current->next = current->next->next;
delete current->next;
}
}
// 访问指定索引的元素
int accessElement(const ListNode* head, size_t index) {
if (index >= head->next == nullptr) {
std::cerr << "Index out of range.\n";
return -1;
}
ListNode* current = head;
for (size_t i = 0; i < index; ++i) {
current = current->next;
}
return current->data;
}
// 示例:创建并操作顺序表
int main() {
ListNode* list = createList();
append(list, 1);
append(list, 2);
append(list, 3);
std::cout << "List: ";
ListNode* temp = list;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << "\n";
removeElement(list, 2);
std::cout << "After removing 2: ";
temp = list;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << "\n";
std::cout << "Element at index 1: " << accessElement(list, 1) << "\n";
return 0;
}
```
阅读全文