<prompt> Kwa kuzingatia mti wa binary, angalia ikiwa ni mti wa utaftaji wa binary?  <response>: Mti wa utafutaji wa binary BST ni mti wa binary ambapo kila nodi ina thamani kama hii: - Thamani iliyohifadhiwa katika mti mdogo wa kushoto wa nodi lazima iwe chini ya thamani ya nodi. - Thamani iliyohifadhiwa katika mti mdogo wa kulia wa nodi lazima iwe kubwa kuliko au sawa na thamani ya nodi. - Miti ndogo ya kushoto na kulia lazima pia iwe miti ya utafutaji ya binary. Ili kuangalia kama mti wa binary ni mti wa utafutaji wa binary, unaweza kutekeleza upitishaji wa mti kwa mpangilio na kuhifadhi thamani katika orodha. Uvukaji wa mpangilio wa BST hutoa thamani katika mpangilio uliopangwa. Kwa hivyo ikiwa orodha imepangwa kwa mpangilio wa kupanda, basi mti wa binary ni BST. Vinginevyo, sivyo. Hivi ndivyo unavyoweza kutekeleza mbinu hapo juu katika Python: python def isBSTmti: def in_order_traversemti, maadili: ikiwa mti sio Hakuna: in_order_traversetree.left, values values.appendtree.val in_order_traversetree.right, values values in_order_traversemti, values rudisha zotethamanii valuesi 1 kwa i in rangelenvalues - 1 Njia nyingine ni kuangalia kwa kurudia kila nodi na mtoto wake wa kushoto na kulia. Kwa njia hii hauitaji kuhifadhi maadili kwenye orodha. Hivi ndivyo unavyoweza kutekeleza hii katika Python: python def isBSTmti: def is_bst_helpermti, min_valuefloat-inf, max_valuefloatinf: ikiwa mti haupo: rudi Kweli kama si min_value tree.val max_value: return False return is_bst_helpertree.left, min_value, tree.val na is_bst_helpertree.right, tree.val, max_value return is_bst_helpertree 