从文件里读入数据创建链表
时间: 2024-02-02 14:04:04 浏览: 148
文件读写入链表.zip_C++链表_数据结构_文件读写_读链表_链表读取文本
5星 · 资源好评率100%
从文件中读取数据并创建链表的步骤如下:
1. 打开文件:使用`fopen`函数打开文件,并将文件指针赋值给一个变量。
2. 读取文件数据:使用`fscanf`函数从文件中读取数据,并将数据存储到相应的变量中。
3. 创建链表节点:根据读取到的数据,创建一个新的链表节点,并将数据存储到节点中。
4. 连接链表节点:将新创建的节点连接到链表中的合适位置。
5. 重复步骤2-4,直到文件中的所有数据都被读取和创建为链表节点。
6. 关闭文件:使用`fclose`函数关闭文件。
下面是一个示例代码,演示了如何从文件中读取数据创建链表:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct Node {
int data;
struct Node* next;
};
// 创建链表节点
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 插入节点到链表尾部
void insertNode(struct Node** head, int data) {
struct Node* newNode = createNode(data);
if (*head == NULL) {
*head = newNode;
} else {
struct Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 从文件中读取数据创建链表
void createLinkedListFromFile(const char* filename, struct Node** head) {
FILE* file = fopen(filename, "r");
if (file == NULL) {
printf("Failed to open the file.\n");
return;
}
int data;
while (fscanf(file, "%d", &data) != EOF) {
insertNode(head, data);
}
fclose(file);
}
// 打印链表
void printLinkedList(struct Node* head) {
struct Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
int main() {
struct Node* head = NULL;
createLinkedListFromFile("data.txt", &head);
printLinkedList(head);
return 0;
}
```
请注意,上述示例代码是使用C语言编写的。在代码中,我们首先定义了一个链表节点结构体`Node`,然后实现了创建节点、插入节点、从文件中创建链表等函数。最后,在`main`函数中调用`createLinkedListFromFile`函数来创建链表,并调用`printLinkedList`函数来打印链表的内容。
阅读全文