二叉树深度遍历的栈实现
一、Object类栈的创建
这个与之前的通用性队列实现相似,只需char[] data–>Object[] data,注意在适当的地方使用强制类型转换即可。前两天强制代码没有写清楚,这里再写一下:
tempNode = (BinaryCharTree) tempStack.pop();
表示ObjectStack类型转换为BinaryCharTree类型。
二、中序遍历实现

In-order visit with stack:

In-order visit with stack:

In-order visit with stack: B

In-order visit with stack: B D A

In-order visit with stack: B D A

In-order visit with stack: B D A E
所有节点遍历完毕, 全部出栈。
In-order visit with stack: B D A E F C
三、代码与数据测试
/**
********************
* In-order visit with stack.
********************
*/
public void inOrderVisitWithStack() {
ObjectStack tempStack = new ObjectStack();
BinaryCharTree tempNode = this;
while (!tempStack.isEmpty() || tempNode != null) {
if (tempNode != null) {
tempStack.push(tempNode);
tempNode = tempNode.leftChild;
} else {
tempNode = (BinaryCharTree) tempStack.pop();
System.out.print("" + tempNode.value + " ");
tempNode = tempNode.rightChild;
} // Of if
} // Of while
} // Of inOrderVisit
运行结果:

4891

被折叠的 条评论
为什么被折叠?



