用C++编写程序实现链表类 LinkedList。实现 main 函数的功能:两个整型链表 A 和 B,分别插入 5 个元素,然后把 B 中的元素加入 A 的尾部。
时间: 2024-09-28 13:14:46 浏览: 60
在C++中,我们可以创建一个简单的链表类`LinkedList`,包含节点结构体、链表的头指针以及插入操作。以下是一个基础的实现:
首先,定义链表节点结构体`Node`:
```cpp
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
```
接下来,定义链表类`LinkedList`,包括构造函数、插入元素的方法`insert`和主函数`main`:
```cpp
class LinkedList {
private:
Node* head;
public:
LinkedList() : head(nullptr) {}
// 插入元素到链表尾部
void insert(int value) {
if (head == nullptr) {
head = new Node(value);
return;
}
Node* curr = head;
while (curr->next != nullptr) {
curr = curr->next;
}
curr->next = new Node(value);
}
// 主函数示例,仅用于演示如何插入元素
static void mainDemo() {
LinkedList listA, listB;
for (int i = 0; i < 5; ++i) {
listA.insert(i + 1); // A 链表插入元素
cout << "Inserted into list A: " << listA.head->data << endl;
}
for (int i = 0; i < 5; ++i) {
listB.insert(5 * i + 6); // B 链表插入元素
cout << "Inserted into list B: " << listB.head->data << endl;
}
// 将 B 链表的元素添加到 A 链表的尾部
Node* bTail = listB.head;
while (bTail->next != nullptr) {
bTail = bTail->next;
}
bTail->next = listA.head;
// 输出合并后的 A 链表
Node* aCurr = listA.head;
cout << "List A after appending list B: ";
while (aCurr != nullptr) {
cout << aCurr->data << " -> ";
aCurr = aCurr->next;
}
cout << "nullptr" << endl;
}
};
// 在这里调用链表类的静态成员函数
LinkedList::mainDemo();
```
这个例子中,我们先创建两个链表`listA`和`listB`,并分别为它们插入5个元素。接着,将`listB`的最后一个元素连接到`listA`的尾部。最后,展示合并后的`listA`。
阅读全文