Binary Search Trees are a special type of binary trees data structure where the value of each node of the left subtree is less than or equal to the value of the root node, and the value of each node of the right subtree is greater than or equal to the value of the root node. In the diagram below, 8 is the root node, and all the nodes belonging to the left subtrees of 8 are less than eight, while these to the right of the root node 8 are greater than 8.

Binary search trees data structures can perform three operations on data; search, insert and remove items. The time complexity of performing the three operations using BST is 0(logn), where n is the number of nodes in the binary search tree. To find the minimum value in a BST, we need to traverse through the BST to the left until we reach the left leaf node in the BST, which is the minimum value. Traversing through the BST to the right till the right leaf node will return the maximum value in the BST. To perform an efficient search through the BST, ensure the tree is balanced.

Traversal refers to visiting nodes in a graph once in a particular order. In BFS traversal, every node at each level is visited before moving to the next level. The BFS traversal output for the BST with this elements “1,2,3,4,5,6,7” is “4,2,6,1,3,5,7”. The first level has the root element 4; the second level has elements 2 and 6; the third level has elements 1,3,5,7, as indicated in the diagram below.

It becomes difficult to search the min or max value in a BST if the tree is a degenerate tree where every root node has only one child. In a degenerate BST, every node is visited to get the min key; thus, the time complexity of this search is 0(n).