ENCYCLOPEDIA 4U .com



Encyclopedia Home Page

Google
  Web Encyclopedia4u.com

 

Post-order traversal

In computer science, post-order traversal is used in data structures, and specifically, trees and binary trees.

Programs that utilize tree structures need to process nodes in a tree (represented as circles in below diagram). Nodes contain information about an object. For now, let's assume each node contains a letter.

Post-order traversal is a type of tree traversal algorithm. Post-order occurs when the root is postponed until its two subtrees are processed.

Steps to post-order traversal

Given a non-empty tree,

  1. Process the nodes in the left subtree with a recursive call
  2. Process the nodes in the right subtree with a recursive call
  3. Process the root

Given a binary tree PY:

The order would go D,G,E,B,F,C,A

An example of PostOrder in C++

template 
int postorder_print(const binary_tree_nodes* ptr)
// ptr is a pointer to a node in a binary tree OR null
// meaning empty tree.
{
   if (ptr != NULL)
   {
       postorder_print( ptr->left() );
       postorder_print( ptr->right() );
       std::cout << ptr->data() << std::endl;
   }
   return 0;
}

The same example in
Haskell might look like

data Tree a = ET | Node(a, Tree a, Tree a)

postorder :: Tree a -> [a] postorder ET = [] postorder (Node (x, left,right)) = (postorder left) ++ (postorder right) ++ [x]

Compare: Pre-order traversal, Inorder traversal




Content on this web site is provided for informational purposes only. We accept no responsibility for any loss, injury or inconvenience sustained by any person resulting from information published on this site. We encourage you to verify any critical information with the relevant authorities.



Copyright © 2005 Par Web Solutions All Rights reserved.
| Privacy

This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "Post-order traversal".