public String printCertainLevel (BSTNode_with_rank node, int depth, int height, int maxheight) {//PASS
		int numofspace = (int)java.lang.Math.pow(2, (maxheight+1-height))-1;
		String spaces = returnSpace(numofspace);
		if (node == null) {
			return spaces + "_" + spaces;
		}
		else if (depth == 0) {
			return spaces + node.data + "(" + node.rank + ")" + spaces;
		}
		else if (depth > 0){
			String leftStr = printCertainLevel(node.left, depth-1, height+1, maxheight);//the depth decres
			String rightStr = printCertainLevel(node.right, depth-1, height+1, maxheight);
			return leftStr+" "+rightStr;
		}
		else return "";
	}