private void buildStack(Stack<BTPosition<T>> s, ArrayList<BTPosition<T>> al) {
		BTPosition<T> c;
		while (!s.isEmpty()) {
			c = s.pop();
			// let right first
			if (c.getRight() != null)
				s.push(c.getRight());
			if (c.getLeft() != null)
				s.push(c.getLeft());
			al.add(c);
		}
	}