/* Unit 2: BST * * - Written in template format for flexibility * * - In project, BST holds primary key of CPU IDs * * - Sorted based off string comparison * * - Has insert, search, and remove functionality * * - Has multiple transversal functions (inorder, preorder, postorder) * * - Has printTree function that prints all nodes in function * * - In project, function pointer is used to print in indented format * * Written By: Tuhin Mondal */ #ifndef INC_08_TEAM_PROJECT_BINARYTREENODE_H #define INC_08_TEAM_PROJECT_BINARYTREENODE_H template class BinaryTreeNode { private: T item; // Data portion BinaryTreeNode* leftPtr; // Pointer to left child BinaryTreeNode* rightPtr; // Pointer to right child public: // constructors BinaryTreeNode(const T& anItem) { item = anItem; leftPtr = 0; rightPtr = 0; } BinaryTreeNode(const T& anItem, BinaryTreeNode* left, BinaryTreeNode* right) { item = anItem; leftPtr = left; rightPtr = right; } // setters void setItem(const T& anItem) { item = anItem; } void setLeftPtr(BinaryTreeNode* left) { leftPtr = left; } void setRightPtr(BinaryTreeNode* right) { rightPtr = right; } // getters T getItem() const { return item; } BinaryTreeNode* getLeftPtr() const { return leftPtr; } BinaryTreeNode* getRightPtr() const { return rightPtr; } // other functions bool isLeaf() const { return (leftPtr == 0 && rightPtr == 0); } }; #endif //INC_08_TEAM_PROJECT_BINARYTREENODE_H