docstr: Get individual node info and left/right child node. We are using a dict as a data structure to keep
  the left and right child node info.
docstr_tok: ["Get","individual","node","info","and","left\/right","child","node",".","We","are","using","a","dict","as","a","data","structure","to","keep","the","left","and","right","child","node","info","."]
code: def _get_nodes_info(self):
      """
      Get individual node info and left/right child node. We are using a dict as a data structure to keep
      the left and right child node info.
      """
      tree_nodes = defaultdict(lambda: None)
      children_left = defaultdict(lambda: -1)
      children_right = defaultdict(lambda: -1)
      node_index = 0
  
      def recur(node, node_id):
          nonlocal node_index
  
          tree_nodes[node_id] = node
  
          if isinstance(node, LeafNode):
              return
          else:
              node_index += 1
              children_left[node_id] = node_index
              recur(node.neg_child, node_index)
  
              node_index += 1
              children_right[node_id] = node_index
              recur(node.pos_child, node_index)
  
      recur(self.tree.root, 0)
  
      return tree_nodes, children_left, children_right
  
imports: from collections import defaultdict
  from typing import List, Mapping
  import numpy
  import tensorflow_decision_forests
  from tensorflow_decision_forests.component.py_tree.node import LeafNode
  from tensorflow_decision_forests.keras import RandomForestModel
  from tensorflow_decision_forests.tensorflow.core import Task
  from dtreeviz.models.shadow_decision_tree import ShadowDecTree, VisualisationNotYetSupportedError
label_desc: Use image node_id 30 for calling the ShadowTensorflowTree obj's underlying member method code with example usage: obj._get_nodes_info() and returns: tree_nodes,  children_left,  children_right