/* This file is part of JOP, the Java Optimized Processor see <http://www.jopdesign.com/> Copyright (C) 2007, Alberto Andreotti This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package gcinc; public class SimpleTree { class node{ node left,right; boolean initialized; int myLevel; public void grow(int i){ if (i>0 && initialized==false){ left=new node(); right=new node(); left.grow(i-1); right.grow(i-1); initialized=true; myLevel=i; } return; } public boolean verify(int depth){ boolean Ok; Ok= myLevel==depth; if (depth>0){ Ok=Ok && left.verify(depth-1); Ok=Ok && right.verify(depth-1); } return Ok; } } private node root; private int depth; public void setRootNode(node n){ root=n; } public SimpleTree(int depth){ root= new node(); root.grow(depth); this.depth=depth; } public SimpleTree(){ } public boolean verify(){ return root.verify(depth); } public SimpleTree getLeftSubtree(){ SimpleTree st; st=new SimpleTree(); st.setRootNode(root.left); st.depth=depth -1; return st; } public SimpleTree getRightSubtree(){ SimpleTree st; st=new SimpleTree(); st.setRootNode(root.right); st.depth=depth -1; return st; } }