设计一个C++链表类,它能将数字储存在链表中,并且能重载+=
时间: 2024-02-25 15:55:00 浏览: 91
好的,下面是我设计的C++链表类,可以实现将数字存储在链表中,并且重载了+=运算符:
```c++
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node* next;
Node(int data) {
this->data = data;
next = NULL;
}
};
class LinkedList {
private:
Node* head;
Node* tail;
public:
LinkedList() {
head = NULL;
tail = NULL;
}
void add(int data) {
Node* newNode = new Node(data);
if (head == NULL) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
LinkedList& operator+=(const LinkedList& list) {
Node* current = list.head;
while (current != NULL) {
add(current->data);
current = current->next;
}
return *this;
}
void display() {
Node* current = head;
while (current != NULL) {
cout << current->data << " ";
current = current->next;
}
cout << endl;
}
};
int main() {
LinkedList list1;
list1.add(1);
list1.add(2);
list1.add(3);
LinkedList list2;
list2.add(4);
list2.add(5);
list2.add(6);
list1 += list2;
list1.display();
return 0;
}
```
在这个链表类中,我们使用了一个Node类来表示链表中的每个节点,它存储了一个整数数据和一个指向下一个节点的指针。在LinkedList类中,我们定义了一个私有的头节点head和尾节点tail,以及add方法来向链表中添加一个新节点。我们还重载了+=运算符,使得我们可以将一个链表对象与另一个链表对象相加,并将它们的元素合并到一个新的链表对象中。最后,我们还定义了一个display方法来打印链表中的所有元素。
在main函数中,我们创建了两个链表对象list1和list2,并向它们中添加了一些元素。然后,我们使用+=运算符将list2中的元素添加到list1中,并使用display方法打印出list1中的所有元素。
阅读全文