LinkedList类中+的重载
时间: 2024-04-15 07:27:45 浏览: 81
在C++中,LinkedList类通常是作为一个自定义的数据结构实现的,而不是作为内置的数据类型。因此,LinkedList类的加法运算符+的重载是由程序员根据自己的需求来实现的。
重载加法运算符+的目的是为了实现两个LinkedList对象的合并。下面是一个示例代码,展示了如何重载LinkedList类的加法运算符+:
```cpp
#include <iostream>
class Node {
public:
int data;
Node* next;
Node(int value) : data(value), next(nullptr) {}
};
class LinkedList {
private:
Node* head;
Node* tail;
public:
LinkedList() : head(nullptr), tail(nullptr) {}
void add(int value) {
Node* newNode = new Node(value);
if (head == nullptr) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
LinkedList operator+(const LinkedList& otherList) {
LinkedList newList;
Node* currentNode = head;
while (currentNode != nullptr) {
newList.add(currentNode->data);
currentNode = currentNode->next;
}
currentNode = otherList.head;
while (currentNode != nullptr) {
newList.add(currentNode->data);
currentNode = currentNode->next;
}
return newList;
}
void display() {
Node* currentNode = head;
while (currentNode != nullptr) {
std::cout << currentNode->data << " ";
currentNode = currentNode->next;
}
std::cout << std::endl;
}
};
int main() {
LinkedList list1;
list1.add(1);
list1.add(2);
list1.add(3);
LinkedList list2;
list2.add(4);
list2.add(5);
LinkedList newList = list1 + list2;
newList.display();
return 0;
}
```
在上述示例代码中,LinkedList类重载了加法运算符+,并通过遍历两个链表的节点,将它们的值添加到一个新的LinkedList对象中。最后,通过调用display()函数,我们可以打印出合并后的链表。
请注意,这只是一个简单的示例,实际情况下,可能需要更复杂的逻辑来处理链表合并的情况。重载加法运算符+的方式可以根据实际需求进行适当的修改。
阅读全文