Java Pretty Print Tree Project

This is a program I wrote in Java for the Computer Science class "Computer Science Fundamentals II" (CS1027) at Western university.

The purpose of this assignment was to get experience working with several topics, including recursion, binary trees and various binary tree algorithms.
I created only the code found in PooPoo.java, all other code was supplied to me.
PrettyPrintTree.java pretty prints a tree whose root is "root" on your terminal. That is, use PrettyPrintTree.printNode(root) in PooPoo.java to pretty print the tree. One example of that is shown in the image on this page. This pretty printing code is "known" to be correct but be wary of one thing: the length of the printed links (made up of "/" or "\") between nodes in adjacent levels in the tree is related to 2^{height-levelNum}. Thus for a tree of height 8 (8 levels) the length of the left and right links between the root and its left and right children (levelNum==1) has to be 2^7=128 to ensure pretty printing. This is completely unrealistic and will look like a mess on your terminal. In general, it is not ideal (feasible) to print a tree with more than 4 levels. Note that all the trees in the list files (list0.txt to list6.txt) print nicely.

Project Code