设计一个C++链表类,它能将数字储存在链表中,并且能重载+=
时间: 2024-02-25 10:54:27 浏览: 26
好的,以下是一个简单的C++链表类的设计,它可以将数字储存在链表中,并且重载了+=运算符:
```cpp
#include <iostream>
using namespace std;
class ListNode {
public:
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
class LinkedList {
public:
ListNode* head;
LinkedList() : head(NULL) {}
void addNode(int val) {
ListNode* newNode = new ListNode(val);
if (head == NULL) {
head = newNode;
} else {
ListNode* curr = head;
while (curr->next != NULL) {
curr = curr->next;
}
curr->next = newNode;
}
}
LinkedList& operator+=(int val) {
addNode(val);
return *this;
}
void printList() {
ListNode* curr = head;
while (curr != NULL) {
cout << curr->val << " ";
curr = curr->next;
}
cout << endl;
}
};
int main() {
LinkedList list;
list += 1;
list += 2;
list += 3;
list.printList(); // 输出 1 2 3
return 0;
}
```
在上面的代码中,ListNode是链表中的节点,LinkedList是链表类。链表的头节点是head。addNode方法用于向链表中添加一个新节点,+=运算符被重载为调用addNode方法,并返回链表对象的引用。printList方法用于打印链表中的所有节点。在main函数中,我们创建了一个LinkedList对象,然后使用+=运算符添加了三个数字1、2和3,并使用printList方法打印了链表中的所有节点。