जब एक पेड़ के सभी नोड्स का योग खोजने की आवश्यकता होती है, तो एक वर्ग बनाया जाता है, और इसमें रूट नोड सेट करने, पेड़ में तत्व जोड़ने, एक विशिष्ट तत्व की खोज करने और पेड़ के तत्वों को जोड़ने के तरीके होते हैं। राशि और इतने पर खोजें। इन विधियों तक पहुँचने और उनका उपयोग करने के लिए कक्षा का एक उदाहरण बनाया जा सकता है।
नीचे उसी का एक प्रदर्शन है -
उदाहरण
from collections import deque
def add_edge(v, w):
global visited_node, adj
adj[v].append(w)
adj[w].append(v)
def BFS_operation(component_num, src):
global visited_node, adj
queue = deque()
queue.append(src)
visited_node[src] = 1
reachableNodes = []
while (len(queue) > 0):
u = queue.popleft()
reachableNodes.append(u)
for itr in adj[u]:
if (visited_node[itr] == 0):
visited_node[itr] = 1
queue.append(itr)
return reachableNodes
def displayReachableNodes(m):
for i in m:
print(i, end = " ")
print()
def findReachableNodes(my_list, n):
global V, adj, visited_node
a = []
component_num = 0
for i in range(n):
u = my_list[i]
if (visited_node[u] == 0):
component_num += 1
a = BFS_operation(component_num, u)
print("The reachable nodes from ", u, " are")
displayReachableNodes(a)
V = 7
adj = [[] for i in range(V + 1)]
visited_node = [0 for i in range(V + 1)]
add_edge(1, 2)
add_edge(2, 3)
add_edge(3, 4)
add_edge(3, 1)
add_edge(5, 6)
add_edge(5, 7)
my_list = [ 2, 4, 5, 7 ]
arr_len = len(my_list)
findReachableNodes(my_list, arr_len) आउटपुट
The reachable nodes from 2 are 2 1 3 4 The reachable nodes from 4 are 2 1 3 4 The reachable nodes from 5 are 5 6 7 The reachable nodes from 7 are 5 6 7
स्पष्टीकरण
-
आवश्यक पैकेज आयात किए जाते हैं।
-
'add_edge' नाम की एक विधि परिभाषित की गई है जो पेड़ में तत्वों को जोड़ने में मदद करती है।
-
'बीएफएस_ऑपरेशन' विधि चौड़ाई पहले खोज दृष्टिकोण का उपयोग करके पेड़ को पार करने में मदद करती है।
-
'डिस्प्ले रीचेबल नोड्स' नाम की एक विधि परिभाषित की गई है, जो उन नोड्स को प्रदर्शित करने में मदद करती है जिन तक एक विशिष्ट नोड से पहुंचा जा सकता है।
-
'findReachableNodes' नाम की एक विधि परिभाषित की गई है, जो नोड्स के माध्यम से पुनरावृत्त होती है, और तत्वों पर 'BFS_operation' करती है।
-
'add_edge' विधियाँ ग्राफ़ में नोड्स जोड़ती हैं।
-
कंसोल पर एक सूची परिभाषित और प्रदर्शित की जाती है।
-
विधि को कॉल किया जाता है और आउटपुट कंसोल पर प्रदर्शित होता है।