無向グラフでBFSを使用してすべての連結成分を検索するPythonプログラム
ツリーのすべてのノードの合計を見つける必要がある場合は、クラスが作成されます。このクラスには、ルートノードの設定、ツリーへの要素の追加、特定の要素の検索、およびツリーの要素の追加を行うためのメソッドが含まれています。合計などを見つけます。これらのメソッドにアクセスして使用するために、クラスのインスタンスを作成できます。
以下は同じのデモンストレーションです-
例
class Graph_structure: def __init__(self, V): self.V = V self.adj = [[] for i in range(V)] def DFS_Utility(self, temp, v, visited): visited[v] = True temp.append(v) for i in self.adj[v]: if visited[i] == False: temp = self.DFS_Utility(temp, i, visited) return temp def add_edge(self, v, w): self.adj[v].append(w) self.adj[w].append(v) def find_connected_components(self): visited = [] connected_comp = [] for i in range(self.V): visited.append(False) for v in range(self.V): if visited[v] == False: temp = [] connected_comp.append(self.DFS_Utility(temp, v, visited)) return connected_comp my_instance = Graph_structure(6) my_instance.add_edge(1, 0) my_instance.add_edge(2, 3) my_instance.add_edge(3, 4) my_instance.add_edge(5, 0) print("There are 6 edges. They are : ") print("1-->0") print("2-->3") print("3-->4") print("5-->0") connected_comp = my_instance.find_connected_components() print("The connected components are...") print(connected_comp)
出力
There are 6 edges. They are : 1-->0 2-->3 3-->4 5-->0 The connected components are... [[0, 1, 5], [2, 3, 4]]
説明
-
「Graph_structure」という名前のクラスが「_init_」メソッドで定義されています。
-
グラフの要素で深さ優先探索を実行するのに役立つ「DFS_Utility」という名前のメソッドが定義されています。
-
グラフにノードを追加するのに役立つ「add_edge」という名前の別のメソッドが定義されています。
-
「find_connected_components」という名前の別のメソッドが定義されており、特定のノードに接続されているノードを判別するのに役立ちます。
-
「Graph_structure」のインスタンスが作成されます。
-
「add_edge」メソッドを使用して要素が追加されます。
-
コンソールに表示されます。
-
「find_connected_components」が呼び出され、出力がコンソールに表示されます。
-
Pythonを使用してすべてのノードに到達するための頂点の最小数を見つけるプログラム
n個の頂点とノードに0からn-1までの番号が付けられた有向非巡回グラフがあるとします。グラフはエッジリストで表されます。ここで、edges [i] =(u、v)はノードuからノードv。グラフ内のすべてのノードに到達できる頂点の最小セットを見つける必要があります。 (頂点は任意の順序で返すことができます)。 したがって、入力が次のような場合 これらの2つの頂点は他のどの頂点からも到達できないため、出力は[0,2,3]になります。したがって、それらから開始すると、すべてをカバーできます。 これを解決するには、次の手順に従います- n:=エッジのサイズ all_nodes:=
-
Unittestを使用したPythonプログラムでのユニットテスト
この記事では、Python3.xで利用可能なunittestモジュールを使用して、ソフトウェアテストの基本について学習します。またはそれ以前。自動化、テストのセットアップと終了コードの共有、およびすべてのフレームワークの独立したテストが可能になります。 単体テストでは、さまざまなオブジェクト指向の概念を使用します。ここでは、主に使用されるいくつかの概念について説明します。 テストケース −これは、特定の入力セットに従った応答固有の基本クラスです。この操作を実装するには、ユニットテストの基本クラス、つまり「TestCase」を使用します。 テストスイート −テストケースをまとめて実