/media/sda-magnetic/david/Extern-Magnetic-2022-06-29/Extern01/Dokumente-2021-05-8/disk10-ab-2020-01-10/02-debian-pc2-work/informatik/java-new/java-2020-11-14/BinTreeProg.java


import java.util.Random;

public class BinTreeProg {

    public static void main (String [] argv) {
        int i;
        
        BinTree2 root = new BinTree2 (argv[0]);
        
        for (i = 1;  i < argv.length;  i++)
            root.insertBinTree2 (argv[i]);
        root.printBinTree2(root.root);
    }
        
    static class BinTree <T> {
        T v;
        BinTree <T> l;
        BinTree <T> r;
        
        BinTree (T v) {
            this.v = v;
            this.l = null;
            this.r = null;
        }   
        
        void insertBinTree (T v) {
            Random rnd = new Random();
            int i = rnd.nextInt(2);
            
            if (i == 1) {
                if (this.l == null) 
                    this.l = new BinTree (v);
                else
                    this.l.insertBinTree(v);
            }
            else {
                if (this.r == null)
                    this.r = new BinTree (v);
                else
                    this.r.insertBinTree (v);
            }
        }
        
        BinTree getleftBinTree () {
            return this.l;
        }

        BinTree getrightBinTree () {
            return this.r;
        }

        
        T getvalBinTree () {
            return this.v;
        }
    }
    
    static class BinTree2 {
        BinTree root;
        BinTree2 (String v) {
            root = new BinTree <String> (v);
        }
        void printBinTree2 (BinTree root) {
            if (root.getleftBinTree() != null)
                printBinTree2(root.getleftBinTree());
            System.out.println(root.getvalBinTree());
            if (root.getrightBinTree() != null)
                printBinTree2(root.getrightBinTree());
        }
        void insertBinTree2 (String v) {
            root.insertBinTree (v);
        }
    }
}