怎么用链表存储信息并保存到文件中
时间: 2023-11-27 07:06:04 浏览: 38
要使用链表来存储信息并保存到文件中,你可以定义一个链表节点的结构体,然后通过节点之间的链接关系来构建链表。下面是一个简单的示例:
```cpp
#include <iostream>
#include <fstream>
struct Node {
int data; // 存储的数据
Node* next; // 指向下一个节点的指针
};
void saveListToFile(const Node* head, const std::string& filename) {
std::ofstream file(filename);
if (!file) {
std::cout << "无法打开文件" << std::endl;
return;
}
const Node* current = head;
while (current != nullptr) {
file << current->data << std::endl;
current = current->next;
}
file.close();
}
Node* readListFromFile(const std::string& filename) {
std::ifstream file(filename);
if (!file) {
std::cout << "无法打开文件" << std::endl;
return nullptr;
}
Node* head = nullptr;
Node* tail = nullptr;
int data;
while (file >> data) {
Node* newNode = new Node;
newNode->data = data;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
file.close();
return head;
}
void deleteList(Node* head) {
while (head != nullptr) {
Node* temp = head;
head = head->next;
delete temp;
}
}
int main() {
// 创建链表
Node* head = new Node;
head->data = 1;
Node* node2 = new Node;
node2->data = 2;
Node* node3 = new Node;
node3->data = 3;
head->next = node2;
node2->next = node3;
node3->next = nullptr;
// 保存链表到文件
saveListToFile(head, "data.txt");
// 从文件中读取链表
Node* newHead = readListFromFile("data.txt");
// 输出链表内容
Node* current = newHead;
while (current != nullptr) {
std::cout << current->data << " ";
current = current->next;
}
std::cout << std::endl;
// 释放链表内存
deleteList(newHead);
return 0;
}
```
上述代码中,我们定义了一个 `Node` 结构体来表示链表的节点,每个节点包含一个 `data` 成员用于存储数据,以及一个 `next` 指针指向下一个节点。我们通过 `saveListToFile()` 函数将链表保存到文件中,通过 `readListFromFile()` 函数从文件中读取链表。最后,我们使用 `deleteList()` 函数来释放链表的内存。
你可以根据需要修改结构体的成员和函数的实现来适应你的具体需求。