编程经验谈JAVAWeb第11章细说JavaWeb常用算法20例.DOC.doc

编程经验谈JAVAWeb第11章细说JavaWeb常用算法20例.DOC.doc

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

Java Web编程经验谈 s Visual C++视频学编程 s 第11章 细说Java Web常用算法20例 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s Visual C++视频学编程 s  PAGE \* MERGEFORMAT 454  PAGE \* MERGEFORMAT 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 00 PAGE 453 第十一章 Java Web常用算法20例 程序由两部分组成:算法和数据。算法是程序的灵魂,我们在编写程序的过程中无时无刻不在应用算法,可以说精通算法是一名优秀程序员必须具备的素质。本章列出几种最常用的算法和一些经典的算法应用。 算法01 单线联系——单向链表算法 链表是一种线性数据结构,使用它能动态的存储一种结构数据。链表是n个数据元素的有限序列,其元素需要自己定义,既可以是一个整数或一个字符串,也可以是一个复杂的记录类型。在计算机程序设计中,经常会使用到链表算法,本节将详细介绍单向链表的相关知识。 算法点拨 链表是一种重要的数据结构,该结构由节点组成。每个节点包含两部分数据,第一部分是节点本身的数据,第二部分是指向下一个节点的指针。对于单向链表,链表中存在两个特殊的节点,分别为“头节点”和“尾节点”。头节点本身没有数据,只存储下一个节点的指针,尾节点只存储数据。单向链表结构如图11.01所示。 图11.01 单向链表结构 实现链表首先需要实现一个节点类,关键代码如下: public class ListNode { public ListNode Next; //指向下一节点的指针与域 public int Value; //值 public ListNode(int NewValue) { Value=NewValue; } } 说明: 上述代码中,公共成员Value用于储存节点本身的数据,Next用于存储下一个节点的指针。对于链表的操作,无非是进行节点的查找、插入和删除操作。 1.查找节点 在进行节点查找时,通常根据节点的数据查找节点。要实现节点的查找,首先需要解决的问题就是遍历链表中的所有节点。可以从链表头节点开始,利用循环的方式向下查找,如果当前节点指向的下一个节点不为空,则将下一个节点设置为当前节点。 2.插入节点 插入节点需要考虑两种情况。第一种情况是在链表尾节点处插入节点,这种情况比较简单,只要将当前尾节点的FNextNode(指向下一个节点的指针)指向新插入的节点就可以了。第二种情况是在链表的中间位置插入节点,首先需要确定在哪个节点后插入新的节点,这就应该由用户来确定了,本例中为了演示的需要,笔者将树视图控件中的当前选项设置为当前节点。然后需要记录当前节点的下一个节点(避免发生“脱节”),可以定义一个临时的节点进行记录。将当前节点的下一个节点指向新添加的节点,再将新添加节点的下一个节点指向临时节点,整个插入节点的流程如图11.02所示。 图11.02 插入节点示意图 3.删除节点 删除节点与插入节点类似,也需要考虑两种情况。第一种情况是删除尾节点,这种情况操作相对比较简单,首先找到尾节点之前的一个节点,将该节点指向的下一个节点设置为空,然后释放尾节点资源。第二种情况是删除链表中间部分的节点。首先需要找到当前节点的下一个节点,并将当前节点指向下一节点下一,并释放当前节点的下一节点,整个流程如图11.03所示。 图11.03 删除节点示意图 算法实现 链表是一种特殊的数据结构,能够动态的存储一种结构类型数据。在开发复杂的系统时,经常会使用链表存储数据。在本例中,笔者设计了一个单向链表。 例11.1 实现单向链表的算法(光盘位置:光盘\MR

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档