king_crimson10

count nodes

Apr 13th, 2022
910
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.04 KB | None | 0 0
  1. from collections import deque
  2.  
  3. class Node:
  4.   def __init__(self, data):
  5.     self.val = data
  6.     self.children = []
  7.  
  8. def count_of_nodes(root, queries, s):
  9.   res = []
  10.   for q in queries:
  11.     node = tree_bfs(root, q[0])
  12.     res.append(count_bfs(node, q[1],s))
  13.   return res
  14.  
  15. def tree_bfs(root, value):
  16.   q = deque()
  17.   q.append(root)
  18.   while(q):
  19.     node = q.popleft()
  20.     if(node.val==value):
  21.       return  node
  22.     for nodes in node.children:
  23.       q.append(nodes)
  24.  
  25. def count_bfs(root, c,s):
  26.   q = deque()
  27.   q.append(root)
  28.   count = 0
  29.   while(q):
  30.     node = q.popleft()
  31.     if(s[node.val-1]==c):
  32.       count+=1
  33.     for nodes in node.children:
  34.       q.append(nodes)
  35.   return count
  36.  
  37. s_2 = "abaacab"
  38. root_2 = Node(1)
  39. root_2.children.append(Node(2))
  40. root_2.children.append(Node(3))
  41. root_2.children.append(Node(7))
  42. root_2.children[0].children.append(Node(4))
  43. root_2.children[0].children.append(Node(5))
  44. root_2.children[1].children.append(Node(6))
  45. queries_2 = [[1, 'a'],[2, 'b'],[3, 'a']]
  46. print(count_of_nodes(root_2, queries_2, s_2))
Advertisement
Add Comment
Please, Sign In to add comment