本篇文章提供了详细的C++源代码示例,演示如何实现单链表的尾插操作。通过逐步解析代码逻辑,帮助读者深入理解数据结构中链表的基本应用与编程技巧。
单链表尾插法的C++源代码实现如下:
```cpp
#include
struct ListNode {
int data;
ListNode* next;
};
class LinkedList {
public:
LinkedList() : head(nullptr) {}
~LinkedList() {
clear();
}
void insertAtTail(int value) {
ListNode* newNode = new ListNode{value, nullptr};
if (!head) { // 如果链表为空
head = newNode;
} else {
ListNode* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode;
}
}
void display() const {
ListNode* current = head;
while(current != nullptr){
std::cout << current->data << ;
current = current->next;
}
std::cout << \n;
}
private:
ListNode* head;
// 清除链表
void clear() {
ListNode *currentNode, *temp;
currentNode = head;
while (currentNode != NULL) {
temp = currentNode->next;
delete currentNode;
currentNode = temp;
}
head = nullptr;
}
};
```
此代码实现了一个简单的单链表类,其中包含一个尾插法的成员函数`insertAtTail()`。该方法接受一个整数参数,并在链表末尾创建一个新的节点并将给定值插入到新节点中。
同时提供了`display() `用于显示整个链表的内容,以及析构函数和辅助清理函数以确保程序运行时不会出现内存泄漏问题。