add preorder and postorder iterator