Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで1つの値がBSTに存在するかどうかを確認するプログラム


二分探索木とvalという別の入力があるとすると、valがツリーに存在するかどうかを確認する必要があります。

したがって、入力が次のような場合

Pythonで1つの値がBSTに存在するかどうかを確認するプログラム

val =7の場合、ツリーに7が存在するため、出力はTrueになります。

これを解決するために、次の手順に従います-

  • 関数solve()を定義します。これはルートになります、val

  • ルートがnullの場合、

    • Falseを返す

  • ルートのデータがvalと同じ場合、

    • Trueを返す

  • ルートのデータが

    • リターンソルブ(ルートの左側、val)

  • リターンソルブ(ルートの権利、val)

理解を深めるために、次の実装を見てみましょう-

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.data = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root, val):
      if not root:
         return False
      if root.data == val:
         return True
      if root.data > val:
         return self.solve(root.left, val)
      return self.solve(root.right, val)
ob = Solution()
root = TreeNode(5)
root.left = TreeNode(1)
root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) print(ob.solve(root, 7))

入力

root = TreeNode(5)
root.left = TreeNode(1)
root.right = TreeNode(9)
root.right.left = TreeNode(7)
root.right.right = TreeNode(10)
root.right.left.left = TreeNode(6)
root.right.left.right = TreeNode(8)
7

出力

True

  1. 与えられたグラフがPythonで2部グラフであるかどうかをチェックするプログラム

    無向グラフが1つあるとすると、グラフが2部グラフであるかどうかを確認する必要があります。グラフのすべてのエッジ{u、v}がAに1つのノードuを持ち、Bに別のノードvを持つように、グラフのノードを2つのセットAとBに分割できる場合、グラフは2部グラフであることがわかります。 したがって、入力が次のような場合 次に、出力はTrueになり、[0,4]はセットAにあり、[1,2,3]はセットBにあり、すべてのエッジはAからAまたはBからBではなく、AからBまたはBからAになります。 。 これを解決するために、次の手順に従います- 関数dfs()を定義します。これはソースを取ります

  2. Pythonで1つの値がBSTに存在するかどうかを確認するプログラム

    二分探索木とvalという別の入力があるとすると、valがツリーに存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 val =7の場合、ツリーに7が存在するため、出力はTrueになります。 これを解決するために、次の手順に従います- 関数solve()を定義します。これはルートになります、val ルートがnullの場合、 Falseを返す ルートのデータがvalと同じ場合、 Trueを返す ルートのデータが