void NewickPrintBinaryTree( PrintStream out ) throws Exception
	{
		NumberFormat nf = NumberFormat.getInstance();
		nf.setMaximumFractionDigits( DOUBLE_PRECISION );
		edge e, f;
		node rootchild;
		e = root.leftEdge;
		rootchild = e.head;
		out.write('(');
		f = rootchild.leftEdge;
		if ( null != f )
	    {
			NewickPrintSubtree( f, out );
			out.write(',');
	    }
		f = rootchild.rightEdge;
		if ( null != f )
	    {
			NewickPrintSubtree( f, out );
			out.write(',');
	    }
		out.write( root.label.getBytes() );
		out.write( ':');
		out.write( nf.format(e.distance).getBytes() );  
		out.write(')');
		if ( null != rootchild.label )
			out.write( rootchild.label.getBytes() );
		out.write(';');
		out.write('\n');
	}