实验一--线性表的实验

上传人:小** 文档编号:58755365 上传时间:2018-11-01 格式:DOC 页数:17 大小:230.52KB
返回 下载 相关 举报
实验一--线性表的实验_第1页
第1页 / 共17页
实验一--线性表的实验_第2页
第2页 / 共17页
实验一--线性表的实验_第3页
第3页 / 共17页
实验一--线性表的实验_第4页
第4页 / 共17页
实验一--线性表的实验_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《实验一--线性表的实验》由会员分享,可在线阅读,更多相关《实验一--线性表的实验(17页珍藏版)》请在金锄头文库上搜索。

1、0实验一实验一 线性表的实验线性表的实验实验课程名实验课程名: C C 语言程序设计语言程序设计 专业班级:专业班级: 学号:学号: 姓名姓名 实验时间:实验时间: 实验地点:实验地点: 指导教师:指导教师: 一、实验目的及要求1、掌握用Visual C+6.0调试顺序表的基本方法。 2、掌握顺序表的基本操作,插入、删除、查找、以及有序顺序表的合并等算法的实 现。 3、掌握用Visual C+6.0上机调试单链表的基本方法。 4、掌握单链表的插入、删除、查找、求表长以及有序单链表的合并算法的实现。 5、进一步掌握循环单链表的插入、删除、查找算法的实现。 二、实验内容、任务一:用顺序表实现通讯录

2、管理 (2)构建如表 1 所示的顺序表并输出检验,实现表 1。 (3)增加插入记录的功能并输出检验,实现表 2。 (4)增加按学号查找的功能并运行验证。 (5)增加删除记录的功能并运行验证。 表 1 学号姓名性别手机号码QQ 号 2013001张珊女1380000191934578 表 2 2013002李思女139101219788796532 2013003陈琪女137894500123789123 2013004王强男136345678566543783 2013005赵括男135344089765679 2013006刘刚男1338654321198315 注意:用结构化程序设计的方法

3、实现即(其中的)把单一功能设计成一个独立的函数。 如构建顺序表设计成一个函数,同样插入、查找、删除、输出也设计成独立的函 数。解答: (1)源代码:#include #include #include #define MaxSize 10 typedef struct char xuehao14;/学号 char name20; /姓名 int sex; /性别 char tel14; /联系电话 char qq12; /QQ 号 ElemType; typedef struct ElemType *list; int length;1int size; SeqList; void InitS

4、eqList( SeqList *L) char flag; int i,n; ElemType *p; L-list=( ElemType * )malloc(MaxSize*sizeof( ElemType ); L-length=0 ; L-size=MaxSize ;printf(“是否输入初始数据?(Y/N)“); scanf(“%c“, if(flag=N|flag=n) return; printf(“请输入初始化数据的个数:“); scanf(“%d“, if(nL-size) printf(“数据太多,不足以存储!“);return; p=L-list; L-length=n

5、; for(i=0;ixuehao,p-name , p+; return; void PrintSeqList(SeqList *L) int i; printf(“学号 姓名 性别 联系电话 QQ 号n“); for( i=0 ; ilength ; i+ ) printf(“%st%st“,L-listi.xuehao,L-listi.name ); if(L-listi.sex)printf(“男“);else printf(“女“);printf(“t%st%6sn“, L-listi.tel ,L-listi.qq );2 /*int main() SeqList L; InitS

6、eqList( PrintSeqList( return 0; */ int InsertSeqList(SeqList *L,int i,ElemType *e) ElemType *q,*p; if(L-length+1L-size ) printf(“表满,失败!“);return 0; if(iL-length+1) printf(“插入位置错误,失败!“);return 0; q= for(p=p=q;p-) *(p+1)=*p ; *(p+1)=*e; L-length+;return 1; /*int main() ElemType e; SeqList L;InitSeqLis

7、t( PrintSeqList( printf(“请输入要插入的数据(学号 姓名 性别(0 或 1) 联系电话 QQ 号):n“); scanf(“%s%s%d%s%s“,e.xuehao,e.name , printf(“学号 姓名 性别 联系电话 QQ 号n“); printf(“%st%st“,e.xuehao,e.name ); if(e.sex)printf(“男“);else printf(“女“);printf(“t%st%6sn“, e.tel ,e.qq ); InsertSeqList( PrintSeqList( return 0; */int LocateList(Se

8、qList *L,char *x)3int i=0;while(ilength if(ilength )printf(“n 学号 姓名 性别 联系电话 QQ 号n“);printf(“%st%st“,L-listi.xuehao,L-listi.name);if(L-listi.sex) printf(“ 男 “); else printf(“ 女 “);printf(“%st%6sn“,L-listi.tel,L-listi.qq);return i+1;return 0; /*int main() SeqList L; InitSeqList( PrintSeqList( printf(“

9、输出查询结果:n“); LocateList( return 0; */ int DeleteList(SeqList *L,int i) int j;ElemType *q,*p;if(L-length =0) printf(“表空,删除失败!n“);return 0;if(iL-length) printf(“删除位置错,失败!n“);return 40;p=for(q=qlength -;return 1; int main() int i; SeqList L; InitSeqList( PrintSeqList( printf(“请输入删除位数:“); scanf(“%d“, Del

10、eteList( PrintSeqList( return 0; (2)运行结果:2.插入功能53.查询功能4.删除功能6(3)运行结果分析:本次作业利用C语言实现顺序表初始化、插入、删除、查找、的基本操作。任务二:用链表实现通讯录管理 1、 构建通讯录的链表并输出检验,实现表 1。 2、增加插入记录的功能并输出检验,实现表2。 3、增加按学号查找的功能并运行验证。 4、增加删除记录的功能并运行验证。解答: (1)源代码:#include #include #include typedef structchar xuehao14;/学号char name20; /姓名int sex; /性别c

11、har tel14; /联系电话char qq12; /QQ 号 DataType; typedef struct LNodeDataType data;struct LNode *next; LNode,*LinkList; LinkList CreatList()/头插法建立链表7LinkList head;head = (LinkList)malloc(sizeof(LNode); LinkList p , s ;s = head ;char flag=y;head-next =NULL;while(flag=Y)|(flag=y)p=(LinkList)malloc(sizeof(LN

12、ode);if(!p) exit(-1);printf(“请输入数据(学号 姓名 性别(0 或 1) 联系 电话 QQ 号):n“);scanf(“%s%s%d%s%s“,p-data.xuehao,p-data.name,p-next = s-next ;s-next = p ;s = p ;getchar();printf(“继续输入吗?(y/n):“);scanf(“%c“, printf(“n“);return head; void PrintList(LinkList head) LNode *p;p=head-next;printf(“学号 姓名 性别 联系电话 QQ 号 n“);

13、printf(“- -n“);while(p!=NULL)printf(“%-14s%-14s“,p-data.xuehao,p-data.name);if(p-data.sex) printf(“男 “); else printf(“女 “);printf(“%-14s%-10sn“,p-data .tel,p-data.qq);printf(“- -n“);p=p-next ;8/*int main() LinkList head;head=CreatList(); PrintList(head); return 0; */ void InsertLinkList(LinkList head) /考虑实际情形,在教材的基础作了一个变化,将插入位置和插入的数据信 息改为输入,不作为形参传入信息。 LinkList p,s;int i;int j;p=head-next;j=1;printf(“请输入要插入结点位置:“);scanf(“%d“,while(pj+;if(!p|jdata.xuehao,s-data.name,s-next =p-next ;p-next =s;return; void GetElemList(LinkList head,DataType *e)/读取位置改为在函数内输 入 LinkList p;int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号