采用非循环单链表实现线性表ADT的操作,c++
时间: 2024-10-20 18:03:34 浏览: 22
非循环单链表是一种简单的数据结构,它由节点组成,每个节点包含数据和指向下一个节点的指针。在C++中,我们可以使用类来表示这种结构,并提供一些基本操作,如插入、删除和查找元素。
```cpp
// 定义链表节点
class Node {
public:
int data;
Node* next;
Node(int value) : data(value), next(nullptr) {} // 构造函数
};
// 链表类
class LinkedList {
private:
Node* head; // 链表头节点
public:
LinkedList() : head(nullptr) {} // 构造函数
// 插入元素到链表尾部
void insert(int value) {
if (!head) {
head = new Node(value);
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = new Node(value);
}
}
// 删除指定值的第一个匹配项
void remove(int value) {
if (head && head->data == value) {
Node* temp = head;
head = head->next;
delete temp;
return;
}
Node* current = head;
while (current->next != nullptr && current->next->data != value) {
current = current->next;
}
if (current->next) {
Node* toDelete = current->next;
current->next = current->next->next;
delete toDelete;
}
}
// 查找元素
bool search(int value) const {
Node* current = head;
while (current != nullptr) {
if (current->data == value) {
return true;
}
current = current->next;
}
return false;
}
// 其他辅助方法,如遍历等...
};
阅读全文