实现单链表中的各种算法运算..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文档。上传文档
查看更多
实现单链表中的各种算法运算.

实验一:实现单链表各种基本运算的算法 实验目的 掌握单链表存储结构的类型定义; 实现单链表各种基本运算的算法。 实验环境 Windows操作系统; Visual C++ 6.0 实验内容 实现单链表各种基本运算的算法。 概要设计 存储结构的类型定义: typedef struct LNode { ElemType data; struct LNode *next; } LinkList; 单链表示意图: 项目组成图: 4、algo2_2.cpp的程序文件包含的函数原型及功能: InitList(LinkList *L) 初始化单链表L DestroyList(LinkList *L) 释放单链表L ListEmpty(LinkList *L)判断单链表L是否为空表 ListLength(LinkList *L)返回单链表L的元素个数 DispList(LinkList *L)输出单链表L GetElem(LinkList *L,int i,ElemType e)获取单链表L的第i个元素 LocateElem(LinkList *L,ElemType e)在单链表L中查找元素e ListInsert(LinkList *L,int i,ElemType e)在单链表L中的第i个位置上插入元素e ListDelete(LinkList *L,int i,ElemType e)在单链表L中删除第i个元素 exp2_2.cpp程序文件简介: (1)初始化单链表h: InitList(h); (2)依次采用尾插法插入a,b,c,d,e元素: ListInsert(h,1,a); ListInsert(h,2,b); ListInsert(h,3,c); ListInsert(h,4,d); ListInsert(h,5,e); (3)输出单链表h: DispList(h); (4)单链表h长度:ListLength(h) (5)判断单链表h 是否为空:ListEmpty(h)?空:非空 (6)查找单链表h的第3个元素:GetElem(h,3,e); (7)查找元素f的位置:LocateElem(h,f) (8)在第4个元素位置上插入f元素:ListInsert(h,4,f); (9)输出单链表h:DispList(h); (10)删除h的第3个元素:ListDelete(h,3,e); (11)输出单链表h:DispList(h); (12)释放单链表h:DestroyList(h); oj2-2的项目的模块结构: 在文件algo2-2中, 1.定义单链表结构类型; 2.初始化单链表 3.定义释放单链表的函数 4.定义判断单链表是否为空的函数 5.定义返回单链表元素个数的函数 6.定义输出单链表的函数 7.定义获取第i个元素的函数 8.定义查找元素的函数 9.定义插入元素的函数 10.定义删除元素的函数 在文件exp2-2中分别调用algo2-2中所定义的函数 函数调用关系图 。 详细设计 源代码清单见附录。 测试、改进、界面 要求:逐一测试各个功能,包括正常测试(例如插入——i在合理范围的测试)、极端情况的测试(例如插入——i超出下限、上限的测试),并逐一做出结论,对出现异常的要给出改进方案。 插入功能测试 i=4时 界面: i=-2时 界面: i=7时 界面: 结论:当元素插入位置在合理范围内,能够准确完成插入;当元素插入位置超出下限时,虽然能够完成插入,但是插入的位置却不是预期那样;当元素插入位置超出上限,元素不能够进行插入。 改进: 当i=-2, 界面: 当i=7时 界面: 查找功能测试 i=3时 界面: 当i=8时 界面: 当i=-2时 界面: 结论:在单链表的的实际长度内,可以查找到任何位置的元素;当i超出单链表的上限或者下限时,不能找到所要找的元素。 改进: i=8时 界面: i=-2时 界面: 3、查找功能测试 当元素在链表内 界面: 当元素不在链表内 界面: 结论:当元素在链表内时,能够找出其相对应的位置;否则,则不能查找其位置。 改进: 当元素不在链表内 界面: 删除功能测试 i=3时 界面: i=8时 界面: i=-2时 界面: 结论:当i在合理范围内,可以删除任意元素;当i超出上限时,无法删除想要删除的元素;当i超出下限时,程序直接删除了第一个元素。 改进: i=8 界面: i=-2时 界面: 附录——源代码清单 /*文件名:algo2-2.cpp*/ #include stdio.h #include malloc.h typedef char ElemType; typedef struct LNode /*定义单链表结点类型*/ { ElemT

文档评论(0)

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

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

1亿VIP精品文档

相关文档