用一段c代码查询指定文件中的一个链表
时间: 2024-05-11 18:15:45 浏览: 80
c语言 文件链表
很高兴为您解答,以下是可以实现查询指定文件中链表的C语言代码:
```
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
void printList(struct Node* node) {
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
}
void insertEnd(struct Node** head_ref, int new_data) {
struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
struct Node* last = *head_ref;
new_node->data = new_data;
new_node->next = NULL;
if (*head_ref == NULL) {
*head_ref = new_node;
return;
}
while (last->next != NULL)
last = last->next;
last->next = new_node;
return;
}
void readFile(char* fileName, struct Node** head_ref) {
FILE* filePointer;
char ch;
int num;
filePointer = fopen(fileName, "r");
if (filePointer == NULL) {
printf("File is not available \n");
} else {
while ((ch = fgetc(filePointer)) != EOF) {
if (ch >= '0' && ch <= '9') {
ungetc(ch, filePointer);
fscanf(filePointer, "%d", &num);
insertEnd(head_ref, num);
}
}
fclose(filePointer);
}
}
int main() {
struct Node* head = NULL;
readFile("file.txt", &head);
printList(head);
return 0;
}
```
其中,`struct Node` 是链表的节点, `insertEnd` 是将新节点插入链表尾部的函数, `printList` 是打印链表元素的函数, `readFile` 是读取指定文件中的数字并创建链表的函数, `main` 函数中调用了 `readFile` 和 `printList` 函数。
使用时只需将文件名修改为您想要查询的文件名即可,如需修改链表节点的数据类型只需将 `int` 替换为您想要的数据类型即可。
阅读全文