Dev-C++构造一个单链表 包括 头插入 尾插入 删除 搜索 遍历 并封装函数
时间: 2024-10-01 19:05:01 浏览: 5
Dev-C++ 是一个基于 C++ 的集成开发环境,用于创建和管理 C++ 程序。要构建一个简单的单链表结构,你可以按照以下步骤:
首先,你需要包含必要的头文件,并定义链表节点的数据结构(Node),以及链表类(LinkedList)。
```cpp
// Node.h
#pragma once
struct Node {
int data;
Node* next;
};
```
```cpp
// LinkedList.cpp
#include "Node.h"
class LinkedList {
private:
Node* head; // 头指针
public:
LinkedList() : head(nullptr) {}
// 插入头部
void insertAtBeginning(int value) {
Node* newNode = new Node{value, head};
if (head) {
head->next = newNode;
}
else {
head = newNode;
}
}
// 插入尾部
void insertAtEnd(int value) {
Node* newNode = new Node{value, nullptr}; // 新建一个无前驱的节点
if (!head) { // 如果链表为空
head = newNode;
return;
}
Node* current = head;
while (current->next) {
current = current->next;
}
current->next = newNode;
}
// 删除节点
bool deleteElement(int value) {
if (!head) return false; // 如果链表为空,无法删除
if (head->data == value) {
Node* temp = head;
head = head->next;
delete temp;
return true;
}
Node* current = head;
while (current->next && current->next->data != value) {
current = current->next;
}
if (current->next) {
Node* temp = current->next;
current->next = temp->next;
delete temp;
return true;
}
return false; // 节点未找到
}
// 搜索元素
Node* search(int value) {
Node* current = head;
while (current) {
if (current->data == value) return current;
current = current->next;
}
return nullptr; // 元素未找到
}
// 遍历链表
void traverse() {
Node* current = head;
while (current) {
std::cout << current->data << " -> ";
current = current->next;
}
std::cout << "NULL" << std::endl;
}
};
```