2019.4.1
//exercise 25.4
public void preorderUsingStack(){
preorderUsingStack(root);
}
private void preorderUsingStack(TreeNode<T> root){
if(root == null)
return;
Stack<TreeNode<T>> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()){
TreeNode<T> current = stack.pop();
System.out.print(current.element+" ");
if(current.right != null){
stack.push(current.right);
}
if(current.left != null){
stack.push(current.left);
}
}
}