Learn the basic algorithms for traversing trees and graphs.
Tree Traversal
Premium Content - Free Preview
Creating a Tree
The previous page showed how to store a Tree in Nodes and in an Array. But how do you convert a Tree from an Array to the more-standard Node form?
Make sure you have your basic Node class, as covered before. Then follow these steps:
- Create a Node
node
from a given celli
in the array:Node node = new Node(ar[i]);
- Create the children Nodes from their positions in the array. (See step #1).
- Assign the children Nodes to
node.left
andnode.right
.
You first create a Node, and then you create children Nodes in the same manner. This sounds like a recursive function will be needed! As mentioned, since trees are recursive structures, recursive functions are used to navigate them.
Here's the above algorithm in Java:
static Node arrayToTree(int[] ar, int i){
if(i >= ar.length || ar[i]==0)
return null;
Node node = new Node(ar[i]);
node.left = arrayToTree(ar, 2*i+1);
node.right = arrayToTree(ar, 2*i+2);
return node;
}
Traversing a Tree
To find information in a Node Tree, you need to traverse through it, which means to go through all its Nodes systematically. There are different orders you can use to go through a tree. Pre-order traversal means you process a Node and then process its sub-trees.
End of Free Content Preview. Please Sign in or Sign up to buy premium content.