递归算法和循环算法的转换
2004-12-01 21:24
375 查看
递归算法和循环算法的转换.
如一个在二插树中查找一个数字的循环实现:
Node findSixNode(Node root){
Node curNode = root;
while(curNode){
if(curNode.getValue() == 6) return curNode;
else if(curNode.getValue() < 6) curNode = curNode.getRight();
else if(curNode.getValue() > 6) curNode = curNode.getLeft();
}
return null;
}
递归实现:
Node findSixNode(Node root){
if(!root) return null;
else if(root.getValue() == 6) return root;
else if(root.getValue() < 6) return findSix(root.getRight());
else if(root.getValue() > 6) return findSix(root.getLeft());
}
}
如一个在二插树中查找一个数字的循环实现:
Node findSixNode(Node root){
Node curNode = root;
while(curNode){
if(curNode.getValue() == 6) return curNode;
else if(curNode.getValue() < 6) curNode = curNode.getRight();
else if(curNode.getValue() > 6) curNode = curNode.getLeft();
}
return null;
}
递归实现:
Node findSixNode(Node root){
if(!root) return null;
else if(root.getValue() == 6) return root;
else if(root.getValue() < 6) return findSix(root.getRight());
else if(root.getValue() > 6) return findSix(root.getLeft());
}
}
相关文章推荐
- 将15位身份证补全为18位身份证的算法示例详解
- C++算法系列之日历生成的算法代码
- ATL实现Connection Point的一种简单的方法
- PHP 的 MySQL 操作类,跟手册上的函数一样用,但是更方便了。多说无益,看了就知道了。
- oracle中的分页
- 英雄无敌程序员版
- 统一权限系统URight1.5
- 计算器原代码的问题
- 关于目前的方向
- 引用一个人的说法看中国软件需求基础
- 力争最简单把*、&说清楚
- 一个画图类,类似ms_chart的线图,适用于科学仿真数据分析(一)
- 图像透明度算法
- 怎样为任何控件和区域添加提示信息:用自己封装的CTip类
- 从注册表中还原MSNMessenger口令
- 非对称加密算法中求解大正整数模大正整数的余数的快速计算法
- 一种基于R-Tree的改进多维索引[待正稿]
- 从数据库中动态选取下拉列表的方法
- Decal SDL-Delphi的范型类库-通用数据结构与算法类库(一)
- Tomcat中通过JNDI配置访问数据库