用C加加实现这个程序
时间: 2025-06-22 22:39:24 浏览: 8
在C++中实现一个读入字符串并将它顺序存入双向链表(Doubly Linked List),然后逆序打印的程序,可以参考下面的代码:
```cpp
#include <iostream>
#include <string>
// 定义链表节点
struct Node {
char data;
Node* next;
Node* prev;
Node(char ch) : data(ch), next(nullptr), prev(nullptr) {}
};
// 定义双向链表
class DoublyLinkedList {
private:
Node* head;
public:
// 构造函数
DoublyLinkedList() : head(nullptr) {}
// 添加节点到链表尾部
void append(const char& ch) {
if (!head) {
head = new Node(ch);
} else {
Node* newNode = new Node(ch);
Node* lastNode = head;
while (lastNode->next != nullptr) {
lastNode = lastNode->next;
}
lastNode->next = newNode;
newNode->prev = lastNode;
}
}
// 逆序打印链表
void printReversed() {
if (head) {
reverseList(head);
Node* temp = head;
while (temp) {
std::cout << temp->data;
temp = temp->next;
}
}
}
private:
// 递归反转链表
void reverseList(Node*& node) {
if (node == nullptr || node->next == nullptr) return;
Node* nextTemp = node->next;
node->next = node->prev;
node->prev = nextTemp;
reverseList(nextTemp);
}
};
int main() {
std::string inputString;
std::cout << "请输入一个字符串: ";
std::cin >> inputString;
DoublyLinkedList dll;
for (const auto& ch : inputString) {
dll.append(ch);
}
std::cout << "\n逆序打印: ";
dll.printReversed();
return 0;
}
```
这段代码首先定义了链表节点结构体`Node`和`DoublyLinkedList`类,包含了插入节点、逆序打印等功能。在`main`函数中,我们获取用户输入的字符串,依次将每个字符添加到链表中,最后逆序打印出来。
阅读全文
相关推荐


















