Let's say that I have a Visual Studio project that needs to make use of a binary search tree data structure. Since .NET does not have a built-in BST data structure I will have to add the classes myself (like from this article). This will involve several classes: Node, NodeList, BinaryTree, etc....so my question is would it be better to add all these classes to one .cs file i.e. nest them, or should each class be it's own separate file? It seems a bit cleaner and possibly easier to reuse the classes if they are all together in one file, no?
I'm just trying to understand best practices for organizing and designing projects. Any advice or direction you could point me would be appreciated.