数据结构试验二第五组.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 线性表操作小组名称:第5组 组 长:韩威言小组成员:JB164025 程功 JB164013 陈鋆玮 负责需求分析、测试JB164025 程功 定义结构体JB164071 孙瑞瑞 定义链表中的函数 JB164013 陈鋆玮 定义顺序表中的函数 JB164067韩威言 负责编写主函数 菜单JB164015 丁志毅 JB164071孙瑞瑞 负责实验报告完成时间:2018-3-27一、需求分析1、程序设计的任务:1.掌握用 C语言调试程序的基本方法。2.掌握线性表的基本运算,如插入、删除等。2、演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“线性表的操作”菜单之后,由用户根据菜单在键盘上输入想要执行的操作,然后分步显示每一个操作的结果。3、程序执行的命令包括:1.线性表在顺序存储结构上的插入元素,删除元素运算2.单链表的建链表,插入结点,删除结点运算3. 循环链表的建链表,插入结点,删除结点运算4. 双向链表的建链表,插入结点,删除结点运算5. 一元多项式的创建、输出、相加、相减、相乘运算。4、测试数据顺序表节点数8,数据元素1,2,3,4,5,6,7,8。链表长度8,数据元素1,2,3,4,5,6,7,8。二、概要设计1、抽象数据类型定义:ADT List{数据对象:D={ai|ai∈ElcmSet,i=1,2,...,n,n=0}数据关系:R1={ai-1,ai|ai-1,ai∈D,i=2,...,n}基本操作:InitList( L )    操作结果:构造一个空的线性表 L 。ListInsert( L, i, e )    初始条件:线性表 L 已存在,1≤i≤LengthList(L)+1。    操作结果:在 L 的第 i 个元素之前插入新的元素 e,L 的长度增1。ListDelete( L, i, e )    初始条件:线性表 L 已存在且非空,1≤i≤LengthList(L)。    操作结果:删除 L 的第 i 个元素,并用 e 返回其值,L 的长度减1。GetElem( L, i, e )    初始条件:线性表 L 已存在,1≤i≤LengthList(L)。    操作结果:用 e 返回 L 中第 i 个元素的。ListLength(L)初始条件:线性表L已存在。操作结果:返回L中数据元素个数。ClearList(L)初始条件:线性表L已存在。操作结果:将L重置为空表。} ADT List2、本程序包含的程序模块:三、详细设计1、基本信息声明#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define LIST_INIT_SIZE 50#define LISTINCREMENT 10//----------结构体----------//typedef int Status;typedef int ElemType;typedef struct {ElemType *elem;int length;int listsize;}SqList;typedef struct link{ int data; struct link *next; }link,*linklist;相关算法声明、定义(1)构建线性表 Status InitList_Sq(SqList *L) { int i,a; L-elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); //分配空间 if(!L-elem) exit(OVERFLOW);//若存储分配失败,返回-2 L-length=0; //空表,长度为0 L-listsize=LIST_INIT_SIZE; //初始存储容量 printf(请输入结点数:); scanf(%d, a); printf(请输入数据:\n); for(i=0;ia;i++) { scanf(%d,L-elem[i]); (L-length)++; } return OK; }线性表插入Status ListInsert_Sq(SqList *L,int i,ElemType e){ int *q=(L-elem[i-1]); ElemType *newbase,*p; if (i1||iL-length+1) return ERROR; //检查i值是否合理 //将线性表第i个元素之后的所有元素向后移动 if(L-length=L-l

文档评论(0)

gl5000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档