前些日子有人在csdn里面发贴,需要用java实现二叉树前序遍历的迭代器,即用next方法来获取前序遍历的当前结点。实习回来没事干,写了一下。关键就是要用一个栈来保存遍历路径。主要涉及类如下:
class TreeNode 这个类用来声明树的结点,其中有左子树、右子树和自身的内容。
class MyTree 这个类用来声明一棵树,传入根结点。这里设计的比较简单
class TreeEum 这个类是树的迭代器,通过MyTree类的方法获取,这里主要就是设计它了。代码如下:
-
- //TreeNode类,使用了泛型,由于比较简单,所以就不作解释
- class TreeNode<E>
- {
- E node;
- private TreeNode<String> left;
- private TreeNode<String> right;
- public TreeNode(E e)
- {
- this(e,null,null);
- }
- public TreeNode(E e,TreeNode<String> left,TreeNode<String> right)
- {
- this.node=e;
- this.left=left;
- this.right=right;
- }
- public TreeNode<String> left()
- {
- return left;
- }
- public TreeNode<String> right()
- {
- return right;
- }
- }
</