PreOrderTraverse( oNode ) { ? oNode.Name; // process the node for each oNode in oNode.Nodes PreorderTraverse( oNode ); } PostOrderTraverse( oNode ) { for each oNode in oNode.Nodes PostOrderTraverse( oNode ); ? oNode.Name; // process the node }For binary trees the terminal condition is a null pointer. In the case of a sorted binary tree:
InOrderTraverse( oNode )
{
if ( ! isnull( oNode ) )
{
InOrderTraverse( oNode.Left );
? oNode.Name;
InOrderTraverse( oNode.Right );
}
The terminal condition though is usually defined by an attribute of the node being processed.>> >>private void button2_Click(object sender, System.EventArgs e) >>{ >> RecursiveMethod(oTree.Nodes[0]); >>} >> >>private void RecursiveMethod(TreeNode treeNode) >>{ >> if(treeNode.Nodes.Count>0) >> foreach(TreeNode n in treeNode.Nodes) >> RecursiveMethod(n); >> else >> MessageBox.Show(treeNode.Text); >>} >> >>