#include "fun.h"
int main(int argc, const char *argv[])
{
list_p H=creat();
write_data(H,1,1);
write_data(H,2,2);
write_data(H,5,3);
write_data(H,6,4);
write_data(H,7,5);
//printf_list(H);
//保存到文件中
list_p p=H;
FILE *fp=fopen("1.txt","w");
if(fp==NULL){return 1;}
while(1)
{
int ret=fprintf(fp,"%d ",p->next->data);
p=p->next;
if(ret==-1||p->next==NULL)
{
break;
}
}
fprintf(fp,"%d ",99);
fclose(fp);
//写入链表
list_p q=H;
FILE *fp2=fopen("1.txt","r");
if(fp2==NULL){return 1;}
while(1)
{
int rr=fscanf(fp2,"%d",&(q->next->data));
q=q->next;
if(rr==-1||q->next==NULL)
{
break;
}
}
printf_list(H);
return 0;
}
#include "fun.h"
list_p creat()
{
list_p H =(list_p)malloc(sizeof(list));
if(H==NULL)
{
return NULL;
}
H->len=0;
H->next =NULL;
return H;
}
list_p creat_node(int data)
{
list_p new=(list_p)malloc(sizeof(list));
new->data=data;
return new;
}
void write_data(list_p H,int data,int pos)
{
list_p new=creat_node(data);
list_p p = H;
for(int i=0;i<pos-1;i++)
{
p=p->next;
}
new->next=p->next;
p->next=new;
H->len++;
}
void printf_list(list_p H)
{
list_p p=H->next;
while(p!=NULL)
{
printf("%d\n",p->data);
p=p->next;
}
}
#ifndef __FUN_H__
#define __FUN_H__
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
typedef struct list
{
union
{
int len;
int data;
};
struct list *next;
}list,*list_p;
list_p creat();
list_p creat_node(int data);
void write_data(list_p H,int data,int pos);
void printf_list(list_p H);
#endif