使用 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”並在控制檯上顯示輸出。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP