zoukankan      html  css  js  c++  java
  • 常用二叉树类(含初始化)

    如题。

    定义一个二叉树根节点,可“拎起”一整棵二叉树。

    定义可以返回一个默认的和用户任意输入的二叉树。

    代码如下:

    public class MyBinaryNode
    {
        String v;
        MyBinaryNode left,right;
        public MyBinaryNode getDefaultNode()
        {
            MyBinaryNode[] a=new MyBinaryNode[7];
            for (int i = 0; i < a.length; i++)
            {
                a[i]=new MyBinaryNode();
                a[i].v=""+(char)(97+i);
            }
            for(int i=0;i<=(a.length+1)/2-2;i++)
            {
                a[i].left=a[2*i+1];
                a[i].right=a[2*i+2];
            }
            return a[0];        
        }
        public MyBinaryNode getInputNode()
        {
            Scanner scan=new Scanner(System.in);
            String myinput="";
            MyBinaryNode[] a;
            System.out.println("按层顺序输入二叉树各元素(#为空)");
            System.out.println("例:ABCDE#F");
            myinput=scan.next();
            a=new MyBinaryNode[myinput.length()];
            for (int i = 0; i < a.length; i++)
            {
                a[i]=new MyBinaryNode();
                a[i].v=myinput.substring(i,i+1);
            }
            for(int i=0;i<=(a.length+1)/2-2;i++)
            {
                if(!a[2*i+1].v.equals("#"))
                {
                    a[i].left=a[2*i+1];
                }
                if(!a[2*i+2].v.equals("#"))
                {
                    a[i].right=a[2*i+2];
                }
            }
            scan.close();
            return a[0];        
        }
        public void front()//递归-前序遍历
        {
            System.out.print(v+"	");
            if(left!=null)
            {
                left.front();
            }
            if(right!=null)
            {
                right.front();
            }
        }
    }

    调用方法:

    public static void main(String[] args)
        {
            MyBinaryNode bt=new MyBinaryNode();
            bt=bt.getDefaultNode();
            bt.front();
            System.out.println();
            bt=bt.getInputNode();
            bt.front();
        }

    运行结果:

    a    b    d    e    c    f    g    
    按层顺序输入二叉树各元素(#为空)
    例:ABCDE#F
    ABCDE#F
    A    B    D    E    C    F
  • 相关阅读:
    C语言调用VIX_API开关虚拟机
    (转)Vix_API 操作 VMware
    C# U盘扫描
    设置字符集
    LIS系统通讯程序原理与实现
    Linux命令的简写和全称
    远程桌面如何退出全屏或全屏切换
    C#编程总结(七)数据加密
    c# 小叙 Encoding(三)
    c# 小叙 Encoding(二)
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/13968623.html
Copyright © 2011-2022 走看看