实验一 线性表的实验.doc

上传人:11****ws 文档编号:3678143 上传时间:2019-07-05 格式:DOC 页数:17 大小:230.50KB
下载 相关 举报
实验一  线性表的实验.doc_第1页
第1页 / 共17页
实验一  线性表的实验.doc_第2页
第2页 / 共17页
实验一  线性表的实验.doc_第3页
第3页 / 共17页
实验一  线性表的实验.doc_第4页
第4页 / 共17页
实验一  线性表的实验.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

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

2、4)增加按学号查找的功能并运行验证。(5)增加删除记录的功能并运行验证。表 1学号 姓名 性别 手机号码 QQ号2013001 张珊 女 13800001919 34578表 22013002 李思 女 13910121978 87965322013003 陈琪 女 13789450012 37891232013004 王强 男 13634567856 65437832013005 赵括 男 13534408976 56792013006 刘刚 男 13386543211 98315注意:用结构化程序设计的方法实现即(其中的)把单一功能设计成一个独立的函数。如构建顺序表设计成一个函数,同样插入

3、、查找、删除、输出也设计成独立的函数。解答:(1)源代码:#include#include#include#define MaxSize 10typedef structchar xuehao14;/学号char name20; /姓名int sex; /性别char tel14; /联系电话char qq12; /QQ号ElemType;typedef structElemType *list;int length;1int size;SeqList;void InitSeqList( SeqList *L)char flag;int i,n;ElemType *p;L-list=( Ele

4、mType * )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;for(i=0;ixuehao,p-name , p+;return;void PrintSeqList(SeqList *L)int i;pri

5、ntf(“学号 姓名 性别 联系电话 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;InitSeqList( PrintSeqList( return 0;*/ int InsertSeqList(SeqList *L,int i,ElemType *e)Ele

6、mType *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;InitSeqList(PrintSeqList(printf(“请输入要插入的数据(学号 姓名 性别( 0或 1) 联系电话 QQ号):n“);scanf(“%s%s%d%s%s“,e.xuehao,e.nam

7、e , 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(SeqList *L,char *x)3int i=0;while(ilength if(ilength )printf(“n学号 姓名 性别 联系电话 QQ号n“);printf(“%st%st“,L-list

8、i.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(“输出查询结果:n“);LocateList(return 0;*/int DeleteList(SeqList *L,int i) int j;ElemType *q,*p;if(L-length =0) printf(

9、“表空,删除失败!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“, DeleteList(PrintSeqList(return 0;(2)运行结果:2.插入功能53.查询功能4.删除功能6(3)运行结果分析:本次作业利用C语言实现顺序表初始化、插入、删除、查找、的基本操作。任务二:用链表实现通讯录管理1、 构建通

10、讯录的链表并输出检验,实现表 1。2、增加插入记录的功能并输出检验,实现表2。3、增加按学号查找的功能并运行验证。4、增加删除记录的功能并运行验证。解答:(1)源代码:#include#include#includetypedef structchar xuehao14;/学号char name20; /姓名int sex; /性别char tel14; /联系电话char qq12; /QQ号DataType;typedef struct LNodeDataType data;struct LNode *next;LNode,*LinkList;LinkList CreatList()/头插

11、法建立链表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(LNode);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 =

12、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“);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

13、-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.xueha

14、o,s-data.name,s-next =p-next ;p-next =s;return;void GetElemList(LinkList head,DataType *e)/读取位置改为在函数内输入LinkList p;int i,j=1;printf(“请输入要读取第几个元素:“);scanf(“%d“,9p=head-next;while(pj+;if(!p|ji) printf(“没有找到!n“);return;printf(“学号 姓名 性别(0 或 1) 联系电话 QQ号n“);printf(“%-14s%-14s“,p-data.xuehao,p-data.name);if

15、(p-data.sex) printf(“ 男 “); else printf(“ 女 “);printf(“%-14s%-10sn“,p-data .tel,p-data.qq);e=int DeleteElemLinkList(LinkList head,DataType *e)LinkList p,q;int i;int j;p=head;j=1;printf(“请输入要删除结点位置:“);scanf(“%d“,while(pj+;if(!p|jnext ;e=p-next =q-next ;free(q);return 1;int main()LinkList head;DataType e;int choice;

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

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。