//大家肯定知道,系统在执行递归方法(对于其它方法也是如此)时是使用运行时栈。对方法的每一次调用,在栈中都会创建一份此次调用的活动记录--包括方法的参数,局部变量,返回地址,动态链接库,返回值等。
// 既然系统能够隐式地使用栈去执行递归方法,那么我们就可以显式地使用栈来执行上述递归程序,这也是将递归程序转化为迭代程序的常用思想。下面的iterativeTravel方法就运用了这一思想。
public static void iterativeTravel(GenericTreeNode node) {
Stack> nodes = new Stack>();
nodes.push(node); // 将当前节点压入栈中。
while (!nodes.isEmpty()) {
GenericTreeNode bufNode = nodes.pop(); // 从栈中取出一个节点。
System.out.println(bufNode.toString())//travelNode(bufNode); // 访问节点。
if (!bufNode.isLeaf()) { // 如果该节点为分枝节点,则将它的子节点全部加入栈中。
nodes.addAll(bufNode.getChildren());//这儿导致循环,达到类似递归的效果.
}
}
}
分享到:
相关推荐
axis2解决 org.apache.axis2.util.JavaUtils.callStackToString问题
Java提供日期(Data)类、日历(Calendar)类,随机数(Random)类,堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构
net.mindview.util包(Thinking in Java 4#)
<Call Stack = DEBUG_FRAME = org.apache.axis2.util.JavaUtils.callStackToString(JavaUtils.java:564) DEBUG_FRAME = org.apache.axis2.description.ParameterIncludeImpl.debugParameterAdd(ParameterIncludeImpl...
介绍Java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供...
试用java.util.Stack泛型栈作为父类,用另一个泛型栈对象作为成员变量,模拟实现一个泛型子类Queue,当存储元素的第1个栈的元素超过dump时,再有元素入队列就倒入第2栈。除提供无参构造函数Queue( )外,其它所有队列...
xml解析工具类,包含了一下的类: org.castor.util.IdentityMap org.castor.util.IdentitySet org.exolab.javasource....org.exolab.castor.util.Stack org.castor.util.Base64Decoder org.castor.util.Base64Encoder
38. import java.util.Stack; 39. import java.util.prefs.Preferences; 40. 41. import javax.swing.BoxLayout; 42. import javax.swing.ImageIcon; 43. import javax.swing.JButton; 44. import javax....
读完了Java.util包简介并教您如何开发应用之一接下来我们继续介绍Java的实用工具类库Java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期...
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run...
>>> Stack = autoclass('java.util.Stack') >>> stack = Stack() >>> stack.push('hello') >>> stack.push('world') >>> stack.pop() 'world' >>> stack.pop() 'hello' 标签:PyJNIus
确保安装了 Java 7 编译器 只需运行即可构建和安装 mvn 全新安装 实现了三个实现: CostOnDeQueueQueue - 快 DirectAccessQueue - 快速 CostOnEnQueueQueue - 慢 此外,还提供了一个线程安全包装器,用于在多线程...
import ... String mm = "I like music,java,this is a test"; for (String s : mm.split(" ")) { stack.push(s); } while (!stack.empty()) { Print.print(stack.pop()+" "); } } }
java编程试题.很多实例非常经典..很值得去研究
from jnius import autoclass ...上面的代码中,我们使用 autoclass 函数,创建了一个类型代理,对应着Java中java.util.Stack类的所有方法和字段属性。 OK,也许你想要一个Android相关的例子,看这里: from jnius imp
利用Java.util 包中的堆栈Stack实现用户输入的阿拉伯数字,输出相应的汉字。
用eclipse本地提交Hadoop任务(如WordCount)到服务器上跑的时候,会报错: Stack trace: ExitCodeException exitCode=1: at org.apache.hadoop.util.Shell.runCommand(Shell.java:538) at org.apache.hadoop.util....
配置: Stack Trace: oracle.sysman.emcp.exception.EMConfigException: 启动 ... at oracle.sysman.assistants.util.em.EMConfiguration.run(EMConfiguration.java:449) at java.lang.Thread.run(Thread.java:534)
用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等 插入排序法 package org.rut.util.algorithm.support; import org.rut.util.algorithm.SortUtil;...
axis2最精简jar包依赖,亲自一个个jar包测试过的,绝对好用!