無向グラフで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」を使用します。 テストスイート −テストケースをまとめて実