- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树非递归遍历统一的新解法及其形式证明.pdf
第34卷第2期 江西师范大学学报 (自然科学版) Vo1.34No.2
2010年 3月 JOURNALOFJIANGXIN0RMALUNIVERSITY(NATURALSCIENCE) Mar.2010
文章编号:1000—5862(2010}02—0123—05
树非递归遍历统一的新解法及其形式证 明
化志章, 杨庆红, 揭安全
(江西师范大学 计算机信息工程学院,江西 南昌 330022)
摘要 :提出树遍历统一的新解法,使其非递归算法像递归算法一样简单.首先以后序遍历为例,基于结点
状态标记和遍历规则提取,从遍历定义导出遍历的递推公式 ,由此机械获得非递归算法和循环不变式,并
用形式化方法证明其正确性.之后按不同遍历定义变换公式参数,获得二叉树前序、中序和 K叉树前序、
后序的递推公式,所得算法比传统算法更简洁直观,表明本解法的有效性和通用性.
关键词 :树遍历;非递归算法;循环不变式
中图法分类号:TP311.1 文献标识码 :A
树遍历,就是按某种规则 (如前序、后序等)依次枚举 出树中的所有结点.传统二叉树遍历算法设计有一
明显缺陷:编写递归算法极为容易,设计非递归算法却十分困难 ;且设计难度也不尽相同,前序、中序相对简
单,后序则较为困难 .算法设计思想也难 以适用于 K叉树 的前序和后序遍历 .纵观国内外经典教材_lj和
Knuth的巨著 《1heArtofComputerProgramming}~,该缺陷几十年来始终存在.遍历是二叉树最基本的操作之
一 , 建树、搜索、比较、穿线、结点计数等操作都可基于遍历实现 .二叉树也是一种典型的递归数据结构.解决
上述缺陷,不仅方便二叉树相关算法的开发与应用,而且对一系列基于递归数据结构的算法开发十分有益 .
1 相关工作
多位学者试图借助形式化技术解决这一问题,在揭示算法如何产生的同时,证明算法正确.文献[4]用谓
词演算技术形式推导二叉树中序遍历非递归算法,通过分析遍历展开过程,猜出其中蕴含的不变式以及所
需的程序语句 .由于对如何猜出不变式缺乏科学有效的规则,使得整个推导证明过程十分晦涩,实用性差.
文献[5]、文献[6]分别形式推导了前序和后序遍历算法,在获取循环不变式方面更简单有效.文献[6]还提出
用递归形式刻画循环不变式,但并未指明如何 由循环不变式构造出程序 ,所用策略也难 以适用于 K叉树遍
历的循环不变式构造 .文献[7]用 自动验证技术验证了后序遍历算法的正确性,但 由于算法表述十分复杂,验
证也较为晦涩难懂 .文献[8]对树遍历用演绎方法给出了诠释 ,但获得的是递归算法 .文献[9]形式推导了K
叉树的前序遍历,可从所得递推关系机械产生循环不变式,所用方法也有一定通用性,但推导过程和算法描
述均较为复杂 .
上述工作未能对遍历规律给出简洁和令人信服的表述,仅在算法正确性方面有所贡献,未能有效解决
树遍历的上述缺陷.本文给出一种新方案,形式推导并获得最为复杂的后序遍历解法,并推广到二叉树和
叉树的其他遍历方式,使得树遍历的非递归算法在代码描述和设计方面,像递归算法一样简单,这是本方法
与上述工作 的本质不同.
2 预备知识
序列是特定类型元素的线性排列,用[]表示空序列,十是序列的连接运算符,如 [a,b]十[c,d]:[0,
收稿 日期 :2009.12—18
基金项 目:国家 “973”前期预研项 目(2003CCA02800),国家 自然科学基金 ,江西省 自然基金 (2008GQS0056)和江
西省教育厅科技项 目(GJJ09142)资助 .
作者简介:化志章(1972一),男 ,安徽萧县人,副教授,硕士,主要从事算法形式推导、软件验证等研究.
江西师范大学学报(自然科学版) 2010年
b,c,d].对任意序列 S,有 S十[]=[]十S=S.对序列 S,S[1]表示序列的首个元素,sE2…]表示 Js中由
第2个元素至序列末尾元素组成的子序列.
用 %表示空树,t.1、t.r分别表示根t的左子树和右子树 .为二叉树类型附加
您可能关注的文档
最近下载
- 第4课 用联系的观点看问题-【中职专用】2024年中职思想政治《哲学与人生》金牌课件(高教版2023·基础模块).pptx VIP
- 新版十八项核心制度课件.pptx VIP
- 集装箱运输实务(十二五国规教材)教学课件作者江明光第一章.pptx VIP
- 2011年-2020年广东省历年高考理科数学试卷真题及答案(共10套).doc VIP
- 甲醇合成操作工(技师)职业技能鉴定理论试题及答案 .docx VIP
- 护士如何与患者建立信任关系.pptx VIP
- 个人融资规划课件.pptx VIP
- 《园林艺术鉴赏》课件.ppt VIP
- 九年级化学(人教2024版)新教材培训课件.pptx
- 2021年广东卷高考真题化学试卷.pdf VIP
文档评论(0)