static public void InOrderTraverse(Tree root) {
		
		Stack<Tree> stack = new Stack<Tree>();
		stack.push(root);
		Tree prev = root;
		while(!stack.empty()) {
			Tree curr = stack.peek();
			if(curr.lc != null && (prev.lc == curr || prev.rc == curr || prev == curr)) {
				stack.push(curr.lc);
			}
			else {
				System.out.print(stack.pop().data + " ");
				if(curr.rc != null) {
					stack.push(curr.rc);
				}
			}
			prev = curr;
		}
	}