- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验的报告
试验编号:______ 四川师大数据结构实验报告 2011 年3 月27 日
计算机科学学院09 级4 班 实验名称:线性表实验
姓名:余燕敏 学号: 2009110468 指导老师: 李敏 实验成绩:________
一、实验目的及要求
熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;
2)以线性表的各种操作(建立、插入、删除等)的实现为重点;
3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。
认真阅读和掌握本实验的参考程序,上机运行本程序, 保存和打印出程序的运行结果,并结合程序进行分析。按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。
二、实验内容
编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功能的调用。
三、实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请填写至附页)
一顺序表:
主函数main主要调用子函数InitList_Sq(sq)顺序表的创建、ListInsert_Sq(sq,s,number)顺序表的插入、PrintNumber(sq)打印新得的数、ListDelete_Sq(sq,s,number顺序表的删除,建立新的整型变量s、ret、number,字符变量char。
子函数InitList_Sq(sq)完成顺序表的创建功能,先构造一个空表L,并设置空表长度为0,然后初始存储容量。
子函数ListInsert_Sq(sq,s,number)完成顺序表的插入的功能,if(L-length=L-listsize)
{newbase=(ElemType*)realloc(L-elem,(L-listsize+LISTINCREMENT)*sizeof(ElemType));}表示若当前存储空间已满,还要增加分配。q=(L-elem[i-1]),q为插入位置,取i-1的地址赋给q。for(p=(L-elem[L-length-1]);p=q;--p) *(p+1)=*p为插入位置及之后的元素后移。
子函数ListDelete_Sq(sq,s,number完成顺序表的删除的功能。首先用f((i1)||(iL-length)) return ERROR判断i的值是否合法,若不合法,则错误。P为被删除元素的位置。被删除元素之后的元素要往左移。
链表
主函数main主要调用子函数CreateList_L(L,k)链表的创建、ListInsert_L(L,m,n)链表的插入、ListDelete_L(L,m)链表的删除、length=length_L(L)、display_all(L,length)打印新得的数、GetELem_L(L,t,e)链表的查找,并利用条件语句do…while,switch语句。
子函数CreateList_L(LinkList *L,int n)完成链表的创建功能。输入n个元素的值,建立带表头结点的单链表线性L。(*L)-next=NULL先建立一个带头结点的单链表,*L=(LinkList)malloc(sizeof(LNode))用malloc开辟一个空间生成新结点,scanf(%d,p-data);?? p-next=NULL;?? tail-next=p;?? tail=tail-next;输入元素值,并插入到表头。
子函数ListInsert_L(LinkList *L,int i,ElemType *e)完成链表的插入功能。用while语句寻找第i-1个结点,s=(LinkList)malloc(sizeof(LNode));? s-data=*e;? s-next=p-next;? p-next=s;生成新结点,并插入L中。
子函数ListDelete_L(LinkList *L,int i)完成在带头结点单链线性表L中,删除第i个元素,并返回其值的功能。用while(p-nextji-1){? p=p-next;? ++j;} 语句寻找第i个结点,并令p指向其前驱。if(!(p-next)||ji-1)return ERROR; q=p-next;? p-next=q-next;? ? free(q);删除位置不合理。删除并释放结点。
子函数display_all(LinkList L,int length)用于显示经过子函数处理所得的新的数。
四、实验结果的分析与评价(该部分如不够填写,请填写至附页)
顺序表:#include stdio.h
#include conio.h
#include malloc.h
#includeiostream
#defi
您可能关注的文档
- 数学必修3算法初步1-2-1.ppt
- 数字电子技术 黄瑞祥 1、2、5章课后答案.doc
- 数学建模论文写作方法与技巧.ppt
- 数学授课计划表(12-13上)2.doc
- 数学必修一1.1.3-2集合运算课件.ppt
- 数学模型的建立过程.doc
- 数字逻辑电路 2逻辑函数及其简化.ppt
- 数学:1.1.3《集合的基本运算(全集与补集)》课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算(第2课时)》课件(新人教A版必修1).ppt
- 数学:1.1.3 集合的基本运算 第1课时课件(新人教A版必修1).ppt
- 2024年01月山西省岚县人民法院2024年招考3名司法辅助人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月宁夏银川市贺兰县人民医院岗位招考聘用11人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月山东烟台莱山区结合事业单位招考聘用征集本科及以上学历毕业生入伍18人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月广西玉林陆川县公开招聘重点领域急需紧缺(高层次)人才60人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月广东中山市南头镇人民政府招考聘用合同制工作人员3人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月政协富宁县委员会委员联络服务中心(云南省)2024年考察调(流)动3名工作人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月广州市海珠区琶洲数字经济创新发展服务中心2024年公开选调1名事业编制工作人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月宁波市鄞州区市场监管局2024年招考3名编外人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月山东省淄博市文昌湖省级旅游度假区事业单位2024年度面向喀什籍高校毕业生综合类(定向)岗位公开招考工作人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月山东聊城东阿县教育类事业单位引进优秀青年人才3人笔试历年典型考题及考点剖析附答案详解.docx
文档评论(0)