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.
Pre-Order Traversal is a type of Tree Traversal[?] algorithm. Pre-order refers to when the root is processed previous to its two subtrees.
Given a non-empty tree,
Given a binary tree PY:
The order would go A,B,D,E,G,C,F
Here is an example of Preorder in C++
template <class Item> int preorder_print(const binary_tree_nodes<Item>* ptr) // ptr is a pointer to a node in a binary tree OR null // meaning empty tree. { if (ptr != NULL) { std::cout << ptr->data() << std::endl; preorder_print( ptr->left() ); preorder_print( ptr->right() ); } return 0; }
The same example in Haskell might look like
data Tree a = ET | Node(a, Tree a, Tree a)
preorder :: Tree a -> [a] preorder ET = [] preorder (Node (x, left,right)) = x : (preorder left) ++ (preorder right)
Compare: Inorder traversal, Post-order traversal
Search Encyclopedia
|
Featured Article
|