public void displayProcessedTree(){
		if(root == null)
			return;
		boolean done =false;
		LinkedList<SuffixTreeNode> queue = new LinkedList<SuffixTreeNode>();
		queue.add(root);
		while(!done){
			done = true;	
			LinkedList<SuffixTreeNode> innerQueue = new LinkedList<SuffixTreeNode>();
			while(queue.size()>0){
				SuffixTreeNode n = queue.poll();
				System.out.print(n.preorder+" "+n.stringRepr.substring(n.cut-n.start)+" A:"+Integer.toBinaryString(n.A)+" I:"+n.I.preorder+"  |  ");
				if(n.children.size()>0){
					for(SuffixTreeNode child:n.children){
						//System.out.println("child found:"+child);
						innerQueue.add(child);
					}					
					done = false;
				}
				//System.out.println();
			}
			while(innerQueue.size()>0)
				queue.add(innerQueue.poll());		
			System.out.println();
		}
	}