code: def bfs(self, root = None, display = None, priority = 'L'):
          '''
          API: bfs(self, root=None, display=None, priority='L', order='in')
          Description:
              Searches tree starting from node named root using breadth-first
              strategy if root argument is provided. Starts search from root node
              of the tree otherwise.
          Input:
              root: Starting node.
              display: Display mode.
              priority: Priority used when exploring children of the node.
              Acceptable arguments are 'L' and 'R'.
          '''
          if root == None:
              root = self.root
          self.traverse(root, display, Queue(), priorityf bfs(self, root = None, display = None, priority = 'L'):
          '''
          API: bfs(self, root=None, display=None, priority='L', order='in')
          Description:
              Searches tree starting from node named root using breadth-first
              strategy if root argument is provided. Starts search from root node
              of the tree otherwise.
          Input:
              root: Starting node.
              display: Display mode.
              priority: Priority used when exploring children of the node.
              Acceptable arguments are 'L' and 'R'.
          '''
          if root == None:
              root = self.root
          self.traverse(root, display, Queue(), priority)
docs: API: bfs(self, root=None, display=None, priority='L', order='in')
          Description:
              Searches tree starting from node named root using breadth-first
              strategy if root argument is provided. Starts search from root node
              of the tree otherwise.
          Input:
              root: Starting node.
              display: Display mode.
              priority: Priority used when exploring children of the node.
              Acceptable arguments are 'L' and 'R'.