1  #pragma once
   2  #include <Node.h>
   3  #include <string>
   4  
   5  class BinaryTree {
   6      public:
   7          explicit BinaryTree(const std::string binaryTreeDescription);
   8          std::string getDescription() const;  // For debugging only
   9          std::string decode(const std::string binaryString) const;
  10  
  11      private:
  12          // Left branch of sentinel_ is root of tree.
  13          const Node* getRoot() const {return sentinel_.getLeftBranch();}    
  14          
  15          // Right branch of sentinel_ is null.
  16          // Parent of sentinel is null.     
  17          InternalNode sentinel_;
  18  };