<prompt> Tekeleza Mti wa Utafutaji wa Binary BST kwenye Python, pamoja na njia za kuchomeka, kufuta, na kutafuta nodi. BST inapaswa pia kuwa na njia ya kupitisha kwa mpangilio ambayo inarudisha mfuatano uliopangwa wa thamani. PLINFORMAT  <response>: nodi ya darasa: def __init__ binafsi, ufunguo: self.left Hakuna self.right Hakuna self.val ufunguodarasa la BinarySearchTree: def __init__binafsi: self.root Hakuna def kuingiza binafsi, ufunguo: ikiwa self.root is None: self.root Nodiufunguo kwingine: self._insert_recursiveself.root, key def _insert_recursivebinafsi, nodi, ufunguo: ikiwa ufunguo node.val: ikiwa node.left is None: node.left Nodiufunguo kwingine: self._insert_recursivenodi.left, key kwingine: ikiwa node.right is None: nodi.right Nodiufunguo kwingine: self._insert_recursivenodi.right, key def kufuta binafsi, ufunguo: self.root self._delete_recursiveself.root, key def _delete_recursive binafsi, mzizi, ufunguo: ikiwa mzizi ni Hakuna: kurudi mizizi ikiwa ufunguo root.val: root.left self._delete_recursiveroot.left, key elif key root.val: root.right self._delete_recursiveroot.right, key kwingine: ikiwa root.left ni Hakuna: rudisha mzizi.kulia elif root.right is None: rudisha mzizi.kushoto temp_val self._find_min_value_nodiroot.right root.val temp_val root.right self._delete_recursiveroot.right, temp_val kurudi mizizi def _find_min_value_nodibinafsi, nodi: sasa nodi wakati current.left sio Hakuna: sasa sasa.kushoto kurudi sasa.val def utaftaji binafsi, ufunguo: return self._search_recursiveself.root, key def _search_recursivebinafsi, nodi, ufunguo: ikiwa nodi ni None au node.val key: nodi ya kurudi sio Hakuna ikiwa ufunguo node.val: return self._search_recursivenode.left, key kwingine: return self._search_recursivenode.right, key def in_order_traversalself: matokeo self._in_order_traversal_recursiveself.root, result matokeo ya kurudi def _in_order_traversal_recursivebinafsi, nodi, matokeo: ikiwa nodi sio Hakuna: self._in_order_traversal_recursivenodi.left, tokeo result.ongezanode.val self._in_order_traversal_recursivenodi.right, tokeo 