【发布时间】:2014-06-04 10:29:14
【问题描述】:
您好,我正在尝试将链接列表导出到文本文件,但不知何故,文本文件总是达到非常大的大小(5gb)并且没有打开。
如果您能看到问题所在并为我提供修复她的方法,我会很高兴,谢谢
我的代码 -
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
} node;
node* insert(node* head, int num);
void free_list(node *head);
void fprintfList(node *head);
int main()
{
int num;
int temp;
node *head, *p;
head = NULL;
FILE * MyFile;
do
{
printf("Enter numbers\n");
scanf("%d",&num);
if(num)
{
head = insert(head, num);
}
} while(num);
p = head;
MyFile = fopen("New_File.txt","w");
while(head)
{
fprintf(MyFile, "%d\n",head->next);
}
//fprintfList(head);
free_list(head);
fclose(MyFile);
return 0;
}
node* insert(node* head, int num)
{
node *temp, *prev, *next;
temp = (node*)malloc(sizeof(node));
temp->data = num;
temp->next = NULL;
if(!head){
head=temp;
} else{
prev = NULL;
next = head;
while(next && next->data<=num){
prev = next;
next = next->next;
}
if(!next){
prev->next = temp;
} else{
if(prev) {
temp->next = prev->next;
prev-> next = temp;
} else {
temp->next = head;
head = temp;
}
}
}
return head;
}
void free_list(node *head)
{
node *prev = head;
node *cur = head;
while(cur)
{
prev = cur;
cur = prev->next;
free(prev);
}
}
【问题讨论】:
标签: c linked-list printf