
Infrastructure:
BTreeInterface.java: Interface specifying the signatures for the BTree
BTree.java: an implementation of the interface
BTree is also java.io.Serializable

Visitors:
Visitor.java: Interface for visitors
PlayVisitor.java: Builds or plays the guessing game using the data in
a BTree
LearnVisitor.java: Learns new data by adding to the BTree
LoadVisitor.java: loads the data from a spefied file into a BTree
SaveVisitor.java: saves the data into a BTree into a specified file

Applications:
SimpleGuesser.java: starts with a simple tree (Is it a mammal, parrot,
cow) and plays the game, no saving of knowledge built during the game!

AnimalDBBuilder.java: same as above but saves the BTree data into a 
"ZooDataBase" using object serialization.

VegDB.java: Vegetable data base builder.

GuesserSimpleLoadSave.java: guesser with (BTree) data loaded from a
file and saved into a file at the end. Uses object serialization for
reading and writing.

Above do not use visitors for load and save.

GuesserLoadSave.java: Same as above but uses LoadVisitor and SaveVisitor.