欢迎来到天天文库
浏览记录
ID:43451873
大小:210.51 KB
页数:10页
时间:2019-10-02
《实验二 链表操作实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二链表操作实现实验日期:2017年3月16日实验目的及要求1.熟练掌握线性表的基本操作在链式存储上的实现;2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3.掌握线性表的链式存储结构的定义和基本操作的实现;4.通过本实验加深对C语言的使用(特别是函数的参数调用、指针类型的应用)。实验内容已知程序文件linklist.cpp已给出学生身高信息链表的类型定义和基本运算函数定义。(1)链表类型定义typedefstruct{intxh;/*学号*/floatsg;/*身高*/ints
2、ex;/*性别,0为男生,1为女生*/}datatype;typedefstructnode{datatypedata;/*数据域*/structnode*next;/*指针域*/}LinkNode,*LinkList;(2)带头结点的单链表的基本运算函数原型LinkListinitList();/*置一个空表(带头结点)*/voidcreateList_1(LinkListhead);/*创建单链表*/voidcreateList_2(LinkListhead);/*创建单链表*/voidsor
3、t_xh(LinkListhead);/*单链表排序*/voidreverse(LinkListhead);/*对单链表进行结点倒置*/voidError(char*s);/*自定义错误处理函数*/voidpntList(LinkListhead);/*打印单链表*/voidsave(LinkListhead,charstrname[]);/*保存单链表到文件*/任务一创建程序文件linklist.cpp,其代码如下所示,理解LinkList类型和基本运算函数后回答下列问题。#include4、dio.h>#include/*单链表结点类型*/typedefstruct{intxh;/*学号*/floatsg;/*身高*/intsex;/*性别,0为男生,1为女生*/}datatype;typedefstructnode{datatypedata;/*数据域*/structnode*next;/*指针域*/}LinkNode,*LinkList;/*带表头的单链表的基本运算函数*/LinkListinitList();/*置一个空表(带头结点)*/voidcreate5、List_1(LinkListhead);/*创建单链表*/voidcreateList_2(LinkListhead);/*创建单链表*/voidsort_xh(LinkListhead);/*单链表排序*/voidreverse(LinkListhead);/*单链表倒置*/voidError(char*s);/*自定义错误处理函数*/voidpntList(LinkListhead);/*打印单链表*/voidsave(LinkListhead,charstrname[]);/*保存单链表到6、文件*//*置一个空表*/LinkListinitList(){LinkListp;p=(LinkList)malloc(sizeof(LinkNode));p->next=NULL;returnp;}/*创建单链表*/voidcreateList_1(LinkListhead){FILE*fp;intxh;floatsg;intsex;LinkListp;if((fp=fopen("records.txt","r"))==NULL){Error("cannotopenfile!");return7、;}while(!feof(fp)){fscanf(fp,"%d%f%d",&xh,&sg,&sex);p=(LinkList)malloc(sizeof(LinkNode));p->data.xh=xh;p->data.sg=sg;p->data.sex=sex;p->next=head->next;head->next=p;}fclose(fp);}/*创建单链表*/voidcreateList_2(LinkListhead){FILE*fp;intxh;floatsg;intsex;Link8、Listp,rear;if((fp=fopen("records.txt","r"))==NULL){Error("cannotopenfile!");return;}rear=head;while(!feof(fp)){fscanf(fp,"%d%f%d",&xh,&sg,&sex);p=(LinkList)malloc(sizeof(LinkNode));p->data.xh=xh;p->data.sg=sg;p->data.sex=sex;p->next=NULL;rear-
4、dio.h>#include/*单链表结点类型*/typedefstruct{intxh;/*学号*/floatsg;/*身高*/intsex;/*性别,0为男生,1为女生*/}datatype;typedefstructnode{datatypedata;/*数据域*/structnode*next;/*指针域*/}LinkNode,*LinkList;/*带表头的单链表的基本运算函数*/LinkListinitList();/*置一个空表(带头结点)*/voidcreate
5、List_1(LinkListhead);/*创建单链表*/voidcreateList_2(LinkListhead);/*创建单链表*/voidsort_xh(LinkListhead);/*单链表排序*/voidreverse(LinkListhead);/*单链表倒置*/voidError(char*s);/*自定义错误处理函数*/voidpntList(LinkListhead);/*打印单链表*/voidsave(LinkListhead,charstrname[]);/*保存单链表到
6、文件*//*置一个空表*/LinkListinitList(){LinkListp;p=(LinkList)malloc(sizeof(LinkNode));p->next=NULL;returnp;}/*创建单链表*/voidcreateList_1(LinkListhead){FILE*fp;intxh;floatsg;intsex;LinkListp;if((fp=fopen("records.txt","r"))==NULL){Error("cannotopenfile!");return
7、;}while(!feof(fp)){fscanf(fp,"%d%f%d",&xh,&sg,&sex);p=(LinkList)malloc(sizeof(LinkNode));p->data.xh=xh;p->data.sg=sg;p->data.sex=sex;p->next=head->next;head->next=p;}fclose(fp);}/*创建单链表*/voidcreateList_2(LinkListhead){FILE*fp;intxh;floatsg;intsex;Link
8、Listp,rear;if((fp=fopen("records.txt","r"))==NULL){Error("cannotopenfile!");return;}rear=head;while(!feof(fp)){fscanf(fp,"%d%f%d",&xh,&sg,&sex);p=(LinkList)malloc(sizeof(LinkNode));p->data.xh=xh;p->data.sg=sg;p->data.sex=sex;p->next=NULL;rear-
此文档下载收益归作者所有