欢迎来到天天文库
浏览记录
ID:14451327
大小:42.00 KB
页数:11页
时间:2018-07-28
《动态单链表(含文件操作)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、动态单链表(含文件操作)//动态单链表(含文件操作)ywmp28link.cpp#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineNULL0#include//含exit()#include//含FILE#include#include#includetypedefstruct{charsno[6];//学号charname[9];//姓名floatscore[5];//语文数学英语综合总分}st
2、;typedefintstatus;typedefstElemType;//-----线性表的单链表存储结构-----typedefstructLNode{ElemTypedata;//数据域datastructLNode*next;//指针域next}LNode,*LinkList;voidoutLNode(ElemTypee){//显示一个给定的结点einti;cout<3、;i++)cout<>e.sno;cout<<"姓名:";cin>>e.name;cout<<"语文数学英语综合:";e.score[4]=0;for(inti=0;i<=3;i++){cin>>e.score[i];e.score[4]+=e.score[i];}}statusCreatList(LinkList&L){//头插法(逆位序4、)建立带表头结点的单链线性表LLinkListp;FILE*fp;charfilename[23]="c:\cfiles\",fn1[10];cout<<"请输入文件名:";cin>>fn1;strcat(filename,fn1);if((fp=fopen(filename,"rb"))==NULL)//打开二进制文件准备读{cout<<"cannotopenfile."<next=NULL;//先建立一个带头结点的单链表p=newLNode;//分配第一个新结点if(fr5、ead(&p->data,sizeof(ElemType),1,fp)!=1)//从文件中读数赋给{cout<<"Filereaderror.";returnNULL;}//链表结点p的数据域while(!feof(fp)){p->next=L->next;L->next=p;//插入到表头p=newLNode;//生成新结点fread(&p->data,sizeof(ElemType),1,fp);//输入元素值}fclose(fp);returnOK;}statuscreateLink(LinkList&L){//从任意二进制文件中读数据尾插法建立带6、头结点的单链表LLinkListp,r;FILE*fp;charfilename[23]="c:\cfiles\",fn1[10];cout<<"请输入文件名:";cin>>fn1;strcat(filename,fn1);if((fp=fopen(filename,"rb"))==NULL)//打开二进制文件准备读{cout<<"cannotopenfile."<data,sizeof(ElemType),17、,fp)!=1)//从文件中读数赋给{cout<<"Filereaderror.";returnNULL;}//链表结点p的数据域while(!feof(fp)){r->next=p;//新结点p链入表尾r=p;//表尾指针r后移p=newLNode;//分配下一个新结点fread(&p->data,sizeof(ElemType),1,fp);}r->next=NULL;//最后结点指针域为空fclose(fp);returnOK;}statusinsertSortCreateLink(LinkList&L)//排序{//从任意二进制文件中读数据插入排8、(升)序建立带头结点的单链表LLinkListp,q
3、;i++)cout<>e.sno;cout<<"姓名:";cin>>e.name;cout<<"语文数学英语综合:";e.score[4]=0;for(inti=0;i<=3;i++){cin>>e.score[i];e.score[4]+=e.score[i];}}statusCreatList(LinkList&L){//头插法(逆位序
4、)建立带表头结点的单链线性表LLinkListp;FILE*fp;charfilename[23]="c:\cfiles\",fn1[10];cout<<"请输入文件名:";cin>>fn1;strcat(filename,fn1);if((fp=fopen(filename,"rb"))==NULL)//打开二进制文件准备读{cout<<"cannotopenfile."<next=NULL;//先建立一个带头结点的单链表p=newLNode;//分配第一个新结点if(fr
5、ead(&p->data,sizeof(ElemType),1,fp)!=1)//从文件中读数赋给{cout<<"Filereaderror.";returnNULL;}//链表结点p的数据域while(!feof(fp)){p->next=L->next;L->next=p;//插入到表头p=newLNode;//生成新结点fread(&p->data,sizeof(ElemType),1,fp);//输入元素值}fclose(fp);returnOK;}statuscreateLink(LinkList&L){//从任意二进制文件中读数据尾插法建立带
6、头结点的单链表LLinkListp,r;FILE*fp;charfilename[23]="c:\cfiles\",fn1[10];cout<<"请输入文件名:";cin>>fn1;strcat(filename,fn1);if((fp=fopen(filename,"rb"))==NULL)//打开二进制文件准备读{cout<<"cannotopenfile."<data,sizeof(ElemType),1
7、,fp)!=1)//从文件中读数赋给{cout<<"Filereaderror.";returnNULL;}//链表结点p的数据域while(!feof(fp)){r->next=p;//新结点p链入表尾r=p;//表尾指针r后移p=newLNode;//分配下一个新结点fread(&p->data,sizeof(ElemType),1,fp);}r->next=NULL;//最后结点指针域为空fclose(fp);returnOK;}statusinsertSortCreateLink(LinkList&L)//排序{//从任意二进制文件中读数据插入排
8、(升)序建立带头结点的单链表LLinkListp,q
此文档下载收益归作者所有