数据结构课程设计-链表操作.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计-链表操作

目录 1 选题背景 1 2 方案与论证 1 2.1 链表的概念和作用 1 2.2 实验的基本要求(软硬件) 1 2.3 算法的设计思想 1 2.4 相关图例 2 2.4.1 单链表的结点结构 2 2.4.2 算法流程图 2 3 过程论述 3 3.1 链表的建立 3 3.2 取出链表中的元素 4 3.3 插入元素 4 3.4 删除元素 5 3.5 查找元素 6 4 结果分析 6 4.1 单链表的结构 6 4.2 单链表 6 4.2.1 顺链操作技术 6 4.2.2 指针保留技术 7 5 结论与总结 7 参考文献 8 附录代码: 9 1 选题背景 陈火旺院士把计算机60多年的发展成就概括为五个“一”:开辟一个新时代----信息时代,形成一个新产业----信息产业,产生一个新科学----计算机科学与技术,开创一种新的科研方法----计算方法,开辟一种新文化----计算机文化,这一概括深刻影响了计算机对社会发展所产生的广泛而深远的影响。 数据结构和算法是计算机求解问题过程的两大基石。著名的计算机科学家P.Wegner指出,“在工业革命中其核心作用的是能量,而在计算机革命中其核心作用的是信息”。计算机科学就是“一种关于信息结构转换的科学”。信息结构(数据结构)是计算机科学研究的基本课题,数据结构又是算法研究的基础。 2 方案与论证 2.1 链表的概念和作用 链表是一种链式存储结构,链表属于线性表,采用链式存储结构,也是常用的动态存储方法。为了克服顺序表的缺陷,可以采用链式方式存储线性表。通常将采用链式存储结构的线性表称为线性链表。单链表的结构包括数据域和指针域,这两部分总称为结点(Node)。单链表中每个结点的存储地址放在其前驱结点的指针域中,由于线性表中的第一个结点无前驱,所以应设一个头指针H指向第一个结点。由于线性表的最后一个节点没有直接后继,则制定单链表的最后一个结点的指针域为空(NULL)。它可以和随意的在其任意一个位置进行插入和删除操作,这对于动态的数据处理十分的有利。利用头插建立一个带头结点的单链表,并用算法实现该单链表的插入、删除查找、输出、求前驱和后继、再把此单链表逆置,然后在屏幕上显示每次操作的结果当所有操作完成后能撤销该单链表。 2.2 实验的基本要求(软硬件) 用VC++6.0软件平台,操作系统:Windows XP 硬件:内存要求:内存大小在256MB,其他配置一般就行。 2.3 算法的设计思想 (1)定义一个创建链表的函数,通过该函数可以创建一个链表,并为下面的函数应用做好准备。 (2)定义输出链表的算法,通过对第一步已经定义好的创建链表函数的调用,在这一步通过调用输出链表的函数算法来实现对链表的输出操作。 (3)定义一个遍历查找的算法,通过此算法可以查找到链表中的每一个节点是否存在。 (4)定义查找链表的每一个前驱和后继,通过定义这个算法,可以很容易的实现对链表的前驱和后继的查找工作。 (5)定义插入节点的算法,通过定义这个算法,并结合这查找前驱和后继的算法便可以在连链表的任意位置进行插入一个新节点。 (6)定义删除节点的操作,这个算法用于对链表中某个多余节点的删除工作。 2.4 相关图例 2.4.1 单链表的结点结构 如图2-1所示,为单链表的结点结构示意图: 图2-1 单链表的结点结构 2.4.2 算法流程图 如图2-2所示,为此算法流程图: 图2-2 算法流程图 3 过程论述 3.1 链表的建立 图 3-1 链表的建立 图 3-2 建立链表并打印链表中的元素 3.2 取出链表中的元素 图3-3 取出链表中的元素 3.3 插入元素 图3-4 插入元素 3.4 删除元素 图3-5 删除元素 图3-6 删除元素后打印链表 3.5 查找元素 图3-7 查找位置为6的元素 4 结果分析 4.1 单链表的结构 一般情况下,使用链表,只关心链表中结点间的逻辑顺序,并不关心每个结点的实际存储位置,因此通常情况下用箭头来表示链域中的指针,于是链表就可以更直观的画成用箭头链接起来的结点序列,如下图所示: H 图4-1 单链表的示例图 4.2 单链表 4.2.1 顺链操作技术 从“头”开始,访问单链表L中的结点i(p指向该节点)时,由于第i个结点的地址在第i-1个结点(pre指向该结点,为p的前驱)的指针域中存放,查找必须从单链表的“首结点”开始(p=L);通过p=p-next并辅助计数器来实现。 4.2.2 指针保留技术 通过对第i个结点进行插入、删除等操作时,需要对第i-1个结点的指针域进行链址操作(pre-next),因此在处理过程中始终需要维

文档评论(0)

zhanghc + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档