设计一个C++链表类,它能将数字存入链表中,并且能重载-
时间: 2023-08-04 17:26:40 浏览: 86
用类的方式实现C++链表功能
好的,以下是一个简单的C++链表类的实现,它包含将数字存入链表中的方法,并且重载了减号运算符:
```c++
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node* next;
};
class LinkedList {
private:
Node* head;
public:
LinkedList() {
head = NULL;
}
// 向链表中添加元素
void add(int value) {
Node* temp = new Node;
temp->data = value;
temp->next = NULL;
if (head == NULL) {
head = temp;
} else {
Node* current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = temp;
}
}
// 重载减号运算符
LinkedList operator-(LinkedList list2) {
LinkedList result;
Node* curr1 = head;
Node* curr2 = list2.head;
while (curr1 != NULL && curr2 != NULL) {
result.add(curr1->data - curr2->data);
curr1 = curr1->next;
curr2 = curr2->next;
}
return result;
}
// 打印链表
void print() {
Node* current = head;
while (current != NULL) {
cout << current->data << " ";
current = current->next;
}
cout << endl;
}
};
int main() {
LinkedList list1, list2;
list1.add(1);
list1.add(2);
list1.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
LinkedList result = list1 - list2;
result.print();
return 0;
}
```
这个链表类包含了一个节点类 `Node`,以及一个链表类 `LinkedList`。链表类有一个头指针 `head`,并且包含了向链表中添加元素的方法 `add`,重载减号运算符的方法 `operator-` 和打印链表的方法 `print`。
使用链表类时,可以创建两个链表对象 `list1` 和 `list2`,分别调用 `add` 方法向链表中添加元素。然后通过 `list1 - list2` 就可以得到两个链表相减的结果,并将结果存储在 `result` 变量中。最后,可以调用 `print` 方法打印出链表中的元素。
阅读全文