实验一-顺序表操作实现.doc
《实验一-顺序表操作实现.doc》由会员分享,可在线阅读,更多相关《实验一-顺序表操作实现.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除实验一 顺序表操作实现实验日期: 2017 年 3 月 6 日 实验目的及要求1. 熟练掌握线性表的基本操作在顺序存储上的实现;2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3. 掌握线性表的顺序存储结构的定义和基本操作的实现;4. 通过本实验加深对C语言的使用(特别是函数调用的参数传递、指针类型的应用)。实验内容已知程序文件seqlist.cpp已给出学生身高信息顺序表的类型定义和基本运算函数定义。(1)顺序表类型定义typedef struct int xh; /*学号*/ float sg; /*身高*/ int sex
2、; /*性别,0为男生,1为女生*/ datatype;typedef struct datatype dataMAX; /*存放顺序表元素的数组*/ int last; /*表示data中实际存放元素个数*/Seqlist; (2)基本运算函数原型void initList(Seqlist *lp);/*置一个空表*/void createList(Seqlist *lp);/*建一个学生顺序表*/void sort_xh(Seqlist *lp);/*按学号排序*/void Error(char *s);/*自定义错误处理函数*/void pntList(Seqlist *lp);/*输出
3、学生表*/void save(Seqlist *lp,char strname);/*保存学生顺序表到指定文件*/任务一创建程序文件seqlist.cpp,其代码如下所示,理解顺序表类型Seqlist和基本运算函数后回答下列问题。/*seqlist.cpp程序文件代码*/#include #include #define MAX 50typedef struct int xh; /*学号*/ float sg; /*身高*/ int sex; /*性别,0为男生,1为女生*/ datatype;typedef struct datatype dataMAX; /*存放顺序表元素的数组*/ in
4、t last; /*表示data中实际存放元素个数*/Seqlist; void initList(Seqlist *lp);/*置一个空表*/void createList(Seqlist *lp);/*建一个学生顺序表*/void sort_xh(Seqlist *lp);/*按学号排序*/void Error(char *s);/*自定义错误处理函数*/void pntList(Seqlist *lp);/*输出学生表*/void save(Seqlist *lp,char strname);/*保存学生顺序表到指定文件*/*置一个空表*/void initList(Seqlist *l
5、p) lp-last=0; /*建一个学生顺序表*/void createList(Seqlist *lp)FILE *fp;int xh ,sex;float sg; if(fp=fopen(records.txt,r)=NULL)Error(can not open file !);while(!feof(fp)fscanf(fp,%d%f%d,&xh,&sg,&sex);lp-datalp-last.xh=xh;lp-datalp-last.sg=sg;lp-datalp-last.sex=sex;lp-last+;fclose(fp);/*按学号排升序*/void sort_xh(Se
6、qlist *lp)int i,j,k;datatype st;for(i=0;ilast-1;i+)k=i; for(j=i+1;jlast;j+) if(lp-dataj.xhdatak.xh ) k=j; if(k!=i) st=lp-datak; lp-datak=lp-datai; lp-datai=st;/*自定义错误处理函数*/void Error(char *s) printf(n %s, s); exit(1); /*返回OS,该函数定义在stdlib.h中*/*输出学生顺序表*/void pntList(Seqlist *lp) int i; for(i=0;ilast ;
7、i+) printf(%2d: %.2f %dn,lp-data i.xh,lp-data i.sg,lp-datai.sex);/*保存学生顺序表到指定文件*/void save(Seqlist *lp,char strname)FILE *fp;int i;if(fp=fopen(strname,w)=NULL) Error(can not open file !);for(i=0;ilast ;i+)fprintf(fp,%2d %5.2f %2dn,lp-datai.xh,lp-datai.sg,lp-datai.sex);fclose(fp);请回答下列问题:(1)由顺序表类型定义可
8、知,该顺序表类型名为 Seqlist ,其中存放的元素为学生信息,学生信息定义的类型名为 datatype ,包含 xh 、 sg 、 sex 三个成员(写出成员变量名),学生信息存储于 data 数组,顺序表的表长变量为 MAX 。(2)seqlist.cpp程序编译连接通过后能执行吗?为什么?其代码的整体结构有哪几个组成部分?答:不能。因为没有主函数,程序无法运行。代码的整体结构的组成部分有:typedef struct datatype;typedef struct Seqlist;void initList(Seqlist *lp);/*置一个空表*/void sort_xh(Seql
9、ist *lp);/*按学号排序*/void createList(Seqlist *lp);/*建一个学生顺序表*/void Error(char *s);/*自定义错误处理函数*/void pntList(Seqlist *lp);/*输出学生表*/void save(Seqlist *lp,char strname);/*保存学生顺序表到指定文件*/(3)回答下列问题a)initList函数的形参变量lp存放什么值?顺序表置为空表的实质是做什么操作?答:学生信息:学号,身高,性别。顺序表的初始化即构造一个空表,这对表是一个加工型的运算,因此,将L设为指针参数,首先动态分配存储空间,然后,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 顺序 操作 实现
限制150内