if the tree is empty, do nothing, else: (For preorder) visit root do left subtree do right subtree
if the tree is empty, do nothing, else: (For inorder) do left subtree visit root do right subtree
if the tree is empty, do nothing, else: (For postorder) do left subtree do right subtree visit root
if the tree is empty, do nothing, else: (For preorder) visit root do left subtree do right subtree (For inorder) (For postorder)
void pre-traverse(Treenode p) { Treenode-stack A; Clear(A); while (true) if (p ≠ nil) { Visit(p); Stack(A, p); p ← p↑Llink; } else if (Empty(A)) return; { p ← Unstack(A); p ← p↑Rlink;