思维导图
#include"lian.h"
lian_p create_p()
{
lian_p p=(lian_p)malloc(sizeof(lian));
if(p==NULL)
{
printf("申请失败\n");
return NULL;
}
p->len=0;
p->next=NULL;
return p;
}
lian_p create_node(datatype data)
{
lian_p new=(lian_p)malloc(sizeof(lian));
if(new==NULL)
{
printf("申请失败\n");
return NULL;
}
new->data=data;
return new;
}
int lian_empty(lian_p H)
{
if(H==NULL)
{
printf("入参为空\n");
return -1;
}
return H->next==NULL?1:0;
}
void inser_head(lian_p H,datatype data)
{
if(H==NULL)
{
printf("为空\n");
return;
}
lian_p new=create_node(data);
new->next=H->next;
H->next=new;
H->len++;
}
int out_put(lian_p H)
{
if(H==NULL)
{
printf("为空\n");
return -1;
}
lian_p p=H->next;
while(p!=NULL)
{
printf("%d->",p->data);
p=p->next;
}
putchar(10);
}
void pp_p(lian_p H)
{
FILE *file1=fopen("3.c","w");
if(file1==NULL)
{
return;
}
lian_p p=H->next;
while(p!=NULL)
{
fprintf(file1,"%d",p->data);
p=p->next;
}
fclose(file1);
}
void dd_p(lian_p H)
{
FILE *file2=fopen("4.c","r");
if(file2==NULL)
{
return;
}
int arr;
while(1)
{
int dd=fscanf(file2,"%d",&arr);
inser_head(H,arr);
if(dd==EOF)
{
break;
}
fclose(file2);
}
}
#ifndef _LIAN_H__
#define _LIAN_H__
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
typedef struct lian
{
union
{
int len;
datatype data;
};
struct lian *next;
}lian,*lian_p;
lian_p create_p();
lian_p create_node(datatype data);
int lian_empty(lian_p H);
void inser_head(lian_p H,datatype
int out_put(lian_p H);
void pp_p(lian_p H);
void dd_p(lian_p H);
#endif
#include"lian.h"
int main()
{
lian_p H=create_p();
inser_head(H,32);
inser_head(H,26);
inser_head(H,15);
out_put(H);
pp_p(H);
dd_p(H);
out_put(H);
return 0;
}