medium
Implement a Binary Search Tree
Create a Binary Search Tree (BST) data structure with basic operations including insertion, search, and traversal.
📝 提示内容
Implement a Binary Search Tree (BST) in your preferred programming language. Your implementation should include the following methods:
1. `insert(value)`: Insert a new value into the BST.
2. `search(value)`: Return true if the value exists in the BST, false otherwise.
3. `inOrderTraversal()`: Return an array with all values in the BST in ascending order.
4. `preOrderTraversal()`: Return an array with all values in the BST following pre-order traversal.
5. `postOrderTraversal()`: Return an array with all values in the BST following post-order traversal.
6. `delete(value)`: Remove a value from the BST if it exists.
Your implementation should handle edge cases such as duplicate values, empty tree operations, and deletion of nodes with 0, 1, or 2 children.
Consider the time and space complexity of your operations and provide comments explaining your approach.