java实现二叉树前序遍历迭代器

本文介绍了如何使用Java实现二叉树的前序遍历迭代器。核心思路是利用栈来保存遍历路径。文章提供了TreeNode、MyTree和TreeEnum三个类的代码实现,其中TreeNode表示树节点,MyTree表示树结构,TreeEnum作为树的迭代器,通过next方法获取前序遍历的当前节点。

 前些日子有人在csdn里面发贴,需要用java实现二叉树前序遍历的迭代器,即用next方法来获取前序遍历的当前结点。实习回来没事干,写了一下。关键就是要用一个栈来保存遍历路径。主要涉及类如下:

class TreeNode  这个类用来声明树的结点,其中有左子树、右子树和自身的内容。

class MyTree  这个类用来声明一棵树,传入根结点。这里设计的比较简单

class TreeEum  这个类是树的迭代器,通过MyTree类的方法获取,这里主要就是设计它了。代码如下:

 

 

    1. //TreeNode类,使用了泛型,由于比较简单,所以就不作解释
    2. class TreeNode<E>
    3. {
    4.     E node;
    5.     private TreeNode<String> left;
    6.     private TreeNode<String> right;
    7.     public TreeNode(E e)
    8.     {
    9.         this(e,null,null);
    10.     }
    11.     public TreeNode(E e,TreeNode<String> left,TreeNode<String> right)
    12.     {
    13.         this.node=e;
    14.         this.left=left;
    15.         this.right=right;
    16.     }
    17.     public TreeNode<String> left()
    18.     {
    19.         return left;
    20.     }
    21.     public TreeNode<String> right()
    22.     {
    23.         return right;
    24.     }
    25. }

 

    1. //MyTree类,没什么功能,传入根结点构造,getEnumerator()方法获取迭代器。 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值