• 常用二叉树类(含初始化)


    如题。

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

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

    代码如下:

    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
  • 相关阅读:
    mass Framework draggable插件
    将一段数字从右到左每隔三位插入一个逗号
    Firefox 12正式发布
    各大瀑布流简析与建议
    判定是否为非负整数
    mass Framework droppable插件
    HTML 5 <video> 标签
    SQL DELETE 语句
    SQL CREATE TABLE 语句(转)
    HTML <fieldset> 标签
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/13968623.html
Copyright © 2020-2023  润新知