কম্পিউটার

পাইথন প্রোগ্রাম একটি গ্রাফে BFS ব্যবহার করে একটি নোড থেকে পৌঁছানো যায় এমন সমস্ত নোড খুঁজে পেতে


যখন একটি গাছের সমস্ত নোডের যোগফল খুঁজে বের করার প্রয়োজন হয়, তখন একটি ক্লাস তৈরি করা হয়, এবং এতে রুট নোড সেট করার পদ্ধতি রয়েছে, গাছে উপাদান যুক্ত করা, একটি নির্দিষ্ট উপাদান অনুসন্ধান করা এবং গাছের উপাদানগুলি যোগ করা যোগফল এবং তাই খুঁজে. এই পদ্ধতিগুলি অ্যাক্সেস এবং ব্যবহার করার জন্য ক্লাসের একটি উদাহরণ তৈরি করা যেতে পারে।

নীচে একই -

এর একটি প্রদর্শন রয়েছে৷

উদাহরণ

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' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা গাছে উপাদান যোগ করতে সাহায্য করে।

  • 'BFS_operation' পদ্ধতিটি প্রস্থ প্রথম অনুসন্ধান পদ্ধতি ব্যবহার করে গাছটি অতিক্রম করতে সাহায্য করে।

  • 'displayReachableNodes' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা একটি নির্দিষ্ট নোড থেকে পৌঁছানো যেতে পারে এমন নোডগুলি প্রদর্শন করতে সাহায্য করে৷

  • 'findReachableNodes' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা নোডের মাধ্যমে পুনরাবৃত্তি করে এবং উপাদানগুলিতে 'BFS_operation' সম্পাদন করে।

  • 'add_edge' পদ্ধতি গ্রাফে নোড যোগ করে।

  • একটি তালিকা সংজ্ঞায়িত করা হয় এবং কনসোলে প্রদর্শিত হয়৷

  • পদ্ধতিটি বলা হয় এবং আউটপুট কনসোলে প্রদর্শিত হয়।


  1. পাইথন ব্যবহার করে বাইনারি ট্রিতে ডানদিকে নোড খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথন ব্যবহার করে সমস্ত নোডে পৌঁছানোর জন্য ন্যূনতম সংখ্যক শীর্ষবিন্দু খুঁজে বের করার প্রোগ্রাম

  3. পাইথন ব্যবহার করে ভাল লিফ নোড জোড়ার সংখ্যা খুঁজে বের করার প্রোগ্রাম

  4. পাইথন ব্যবহার করে একই লেবেল সহ সাব-ট্রিতে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম