Subversion Repositories programming

Rev

Blame | Last modification | View Log | RSS feed

// Written by Ira Snyder
// 11-03-2004
import java.io.*;
import java.util.*;

class UnorderedTree {
        private Object root;
        private Set subtrees;
        private int size;

        public UnorderedTree( ) { } //constructs an empty tree

        public UnorderedTree( Object root ) { //constructs a singleton
                this.root = root;
                subtrees = new HashSet(); //empty set
                size = 1;
        }

        //constructor to create any tree that is not a singleton
        //and is not an empty tree
        public UnorderedTree( Object root, Set trees ) {
                this(root);
                for( Iterator it=trees.iterator(); it.hasNext(); ) {
                        Object object = it.next();
                        if( object instanceof UnorderedTree ) {
                                UnorderedTree tree = (UnorderedTree)object;
                                subtrees.add(tree);
                                size += tree.size;
                        }
                }
        }

        public int size( ) { return size; }
        
} //end class UnorderedTree