• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

java二叉树与vector类的问题

书本题目要求遍历下面的二叉树,这个我是办到了,但是其中有些细节,我理解不了,请高手大神们帮忙指点一下!

我套用了书中例题的代码,我对这个代码一开始是表示怀疑的,但是一运行发现是对的。之后我就想看看到底是怎么运作的,代码和结果如下:
        public static Vector rootMid(TreeNode root){//中序遍历                Vector result=new Vector();                if (root==null) {                        return result;                }                System.out.print("一"+root.nodevalue+",");                Vector lNodes=rootMid(root.lNode);                System.out.print("二"+root.nodevalue+";");                result.addAll(lNodes);                result.add(root);                Vector rNodes=rootMid(root.rNode);                result.addAll(rNodes);        return result;                }public class DateStructure {        public static void main(String[] args) {                TreeNode a,b,d,g,e,f,h;                h=new TreeNode("h");                f=new TreeNode("f",h,null);                e=new TreeNode("e",f,null);                g=new TreeNode("g");                d=new TreeNode("d",g,null);                b=new TreeNode("b",d,e);                a=new TreeNode("a",b,null);                Vector result=new BinaryTree().rootMid(a);                System.out.print("中序遍历结果:");                for(TreeNode tn:result){                        System.out.print("、"+tn.nodevalue);                }        }}运行后结果:

一a,一b,一d,一g,二g;二d;二b;一e,一f,一h,二h;二f;二e;二a;中序遍历结果:、g、d、b、h、f、e、a
首先“一”字开头的部分我是理解的,我觉得方法递归的顺序就是这样,但是遍历结果我理解不了,虽然我知道这个结果对题目要求来说是正确的,但是我的理解结果更倾向“一”这样的顺序,就算是栈那样的后来居上的添加方式,那“a”不也应该是排中间吗?另外“二”开头的字母,它这个输出方法和“一”是一样的,代码中并没有对root进行重新赋值或排序,怎么就变成这样了?
求指点!!!

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031168位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!