Write a method named writeTree
that prints a binary tree of integers in a specific format.
Your method accepts as its parameter a TreeNode
that refers to the root of the tree.
You are to perform a pre-order traversal of the tree, producing exactly one line of output for each node.
Each output line should begin with a code indicating the type of node from the following table, followed by the data in the node:
Code |
Node Type |
0 |
leaf node (no children) |
1 |
branch node with left child only |
2 |
branch node with right child only |
3 |
branch node with left and right children |
For example, suppose a variable named tree
refers to the root of the following tree:
(7 (9 (5)) (8 (4 / (9)) (6)))
The call of writeTree(tree);
would produce the following console output:
3 7
1 9
0 5
3 8
2 4
0 9
0 6
Assume that you are interacting with TreeNode
s as defined below:
public class TreeNode {
public int data;
public TreeNode left;
public TreeNode right;
public TreeNode() { ... }
public TreeNode(int data) { ... }
public TreeNode(int data, TreeNode left, TreeNode right) { ... }
}