void Delete_Tree(BTreeNode *&tree) { BTreeNode *NodeToDelete = tree; BTreeNode *TempNode; if (tree->Right == NULL) tree = tree->Left; else if (tree->Left == NULL) tree = tree->Right; else { TempNode = tree->Right; while (TempNode->Left != NULL) TempNode = TempNode->Left; TempNode->Left = tree->Left; tree = tree->Right; } Employee[NodeToDelete->Hash_Key()].free_flag = true; delete NodeToDelete; }