(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
<br>
+
[[Category:ECE264]] [[Category:Programming]] [[Category:C]]
  
= Binary Tree: In Order and Post Order =
+
= [[ECE264]]: Binary Tree: In Order and Post Order =
'''In Order Printing'''
+
In order printing takes the root of a binary tree and prints all the values in the tree in order. &nbsp;The function is a recursive function that goes as far left in the binary tree until it hits the end. &nbsp;It will then print the leaf's value. &nbsp;After the leaf's value is printed, the function moves to the right once and precedes to go left until a leaf is found. &nbsp;Printing the leaf's value and continues on.
+
  
 +
==== '''In Order Printing'''  ====
  
 +
In order printing takes the root of a binary tree and prints all the values in the tree in order. &nbsp;The function is a recursive function that goes as far left in the binary tree until it hits the end. &nbsp;It will then print the leaf's value. &nbsp;After the leaf's value is printed, the function moves to the right once and precedes to go left until a leaf is found. &nbsp;Printing the leaf's value and continues on.
  
Example code for in order printing:
+
<br>
  
void Tree_inOrder(TNode *n) /*see declaration of TNode below*/
+
Example code for in order printing:
  
{
+
void Tree_inOrder(TNode *n) /*see declaration of TNode below*/
  
&nbsp;&nbsp; &nbsp; if(n==0)
+
{
  
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return;
+
&nbsp;&nbsp; &nbsp; if(n==0)
  
&nbsp;&nbsp; &nbsp; Tree_inOrder(n-&gt;left);
+
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return;  
  
&nbsp;&nbsp; &nbsp; printf("%d\n", n-&gt;value);
+
&nbsp;&nbsp; &nbsp; Tree_inOrder(n-&gt;left);  
  
&nbsp;&nbsp; &nbsp; Tree_inOrder(n-&gt;right);
+
&nbsp;&nbsp; &nbsp; printf("%d\n", n-&gt;value);  
  
}&nbsp;
+
&nbsp;&nbsp; &nbsp; Tree_inOrder(n-&gt;right);
 +
 
 +
}&nbsp;  
  
 
<br>  
 
<br>  
  
void Tree_postOrder(TNode *n) /*see declaration of TNode below*/
+
==== Post Order Printing  ====
  
{
+
Post order printing is similar to in order printing in the sense that all values of the tree are printed but is different in the order of which the values are printed.
  
&nbsp;&nbsp; &nbsp; if(n==0)
+
Post prder printing will take any node in the tree and print all the values to the left and right before the original node is printed. &nbsp;Example: If the root of the binary tree is 19 and post order printing is called with the root, then the very last line of output will be 19.
  
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;
+
<br>
  
&nbsp;&nbsp; &nbsp; Tree_postOrder(n-&gt;left);
+
Example code for in order printing:
  
&nbsp;&nbsp; &nbsp; Tree_postOrder(n-&gt;right);
+
void Tree_postOrder(TNode *n) /*see declaration of TNode below*/
  
&nbsp;&nbsp; &nbsp; printf("%d\n", n-&gt;value);
+
{
  
}
+
&nbsp;&nbsp; &nbsp; if(n==0)
  
 +
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;
  
 +
&nbsp;&nbsp; &nbsp; Tree_postOrder(n-&gt;left);
  
 +
&nbsp;&nbsp; &nbsp; Tree_postOrder(n-&gt;right);
  
 +
&nbsp;&nbsp; &nbsp; printf("%d\n", n-&gt;value);
  
 +
}
  
 +
<br>
  
The declaration of TNode is as followed:
+
<br>
 +
 
 +
<br>
  
typedef struct Treenode
+
The declaration of TNode is as followed:
  
{
+
typedef struct Treenode
  
&nbsp;&nbsp; &nbsp; int value;
+
{
  
&nbsp;&nbsp; &nbsp; struct Treenode *left;
+
&nbsp;&nbsp; &nbsp; int value;  
  
&nbsp;&nbsp; &nbsp; struct Treenode *right;
+
&nbsp;&nbsp; &nbsp; struct Treenode *left;  
  
}TNode;
+
&nbsp;&nbsp; &nbsp; struct Treenode *right;  
  
<br> [[ECE264|Back to ECE264]]
+
}TNode;
  
[[Category:ECE264]]
+
----
 +
[[2011_Spring_ECE_264_Lu|Back to ECE264, Spring 2011, Prof. Lu]]

Latest revision as of 06:46, 11 July 2012


ECE264: Binary Tree: In Order and Post Order

In Order Printing

In order printing takes the root of a binary tree and prints all the values in the tree in order.  The function is a recursive function that goes as far left in the binary tree until it hits the end.  It will then print the leaf's value.  After the leaf's value is printed, the function moves to the right once and precedes to go left until a leaf is found.  Printing the leaf's value and continues on.


Example code for in order printing:

void Tree_inOrder(TNode *n) /*see declaration of TNode below*/

{

     if(n==0)

           return;

     Tree_inOrder(n->left);

     printf("%d\n", n->value);

     Tree_inOrder(n->right);


Post Order Printing

Post order printing is similar to in order printing in the sense that all values of the tree are printed but is different in the order of which the values are printed.

Post prder printing will take any node in the tree and print all the values to the left and right before the original node is printed.  Example: If the root of the binary tree is 19 and post order printing is called with the root, then the very last line of output will be 19.


Example code for in order printing:

void Tree_postOrder(TNode *n) /*see declaration of TNode below*/

{

     if(n==0)

          return;

     Tree_postOrder(n->left);

     Tree_postOrder(n->right);

     printf("%d\n", n->value);

}




The declaration of TNode is as followed:

typedef struct Treenode

{

     int value;

     struct Treenode *left;

     struct Treenode *right;

}TNode;


Back to ECE264, Spring 2011, Prof. Lu

Alumni Liaison

Abstract algebra continues the conceptual developments of linear algebra, on an even grander scale.

Dr. Paul Garrett