const True = 1; const False = 0; typedef int TreeData; struct TreeNode { TreeData Info; TreeNode *Left; TreeNode *Right; }; typedef struct TreeNode *NodePtr; typedef void (*FcnType) (TreeData Info); class BinTree { NodePtr Root, Cursor; int Size; void DoInOrder(NodePtr Next, FcnType Visit); public: BinTree(); int GetSize(); NodePtr GetRoot(); NodePtr GetCursor(); int IsEmpty(); void InsertAtRoot(TreeData El, int& Success); void InsertLeft(TreeData El, int& Success); void InsertRight(TreeData El, int& Success); void Retrieve(TreeData& El, int& Success); void Replace(TreeData& El, int& Success); void InitCursor(NodePtr Ptr); int HasLeftTree(); int HasRightTree(); void GoLeft(); void GoRight(); void InOrder(FcnType Visit); }