Как и Джефф Йейтс, я бы использовал один файл для каждого типа. Java навязывает это, а не .NET - но, похоже, это путь к хорошо организованным решениям.
Кроме того, я бы поместил все связанные с BST файлы в отдельный проект в том же решении. Если я вас правильно понял, ваше приложение не о BST, оно просто использует их, верно? Если дело обстоит именно так, отдельный проект - это то, что нужно.
И создавать хорошо именованные и четко определенные пространства имен. Например, MyApplication.Bst
для файлов, связанных с BST, и MyApplication.UI
для внешнего интерфейса, например.