






"""simple docstring"""






from __future__ import annotations



def  __lowerCamelCase					(					lowerCAmelCase__       ,lowerCAmelCase__				):
				A__ ,			A__							 =       set(__lowerCAmelCase				), [start]

				while stack:
								A__							 =       stack.pop()
								explored.add(__lowerCAmelCase				)
								# Differences from BFS:
								# 1) pop last element instead of first one
								# 2) add adjacent elements to stack without exploring them
								for adj in reversed(graph[v]				):
												if adj not in explored:
																stack.append(__lowerCAmelCase				)
				return explored


SCREAMING_SNAKE_CASE						:						Any					   =       {
    'A': ['B', 'C', 'D'],
    'B': ['A', 'D', 'E'],
    'C': ['A', 'F'],
    'D': ['B', 'D'],
    'E': ['B', 'F'],
    'F': ['C', 'E', 'G'],
    'G': ['F'],
}

if __name__ == "__main__":
					import doctest

					doctest.testmod()
					print(depth_first_search(G, '''A'''))










"""simple docstring"""






from ..utils import DummyObject, requires_backends





class       snake_case_       (    metaclass=_lowerCamelCase       ):



	"""simple docstring"""

	SCREAMING_SNAKE_CASE_:							List[str]   			=					["""note_seq"""]


	def __init__(      self  ,					*__a  ,					**__a						):


					"""simple docstring"""

					requires_backends(self  ,					['note_seq']						)


	@classmethod
	def       _UpperCAmelCase						(      cls  ,					*__a  ,					**__a						):


					"""simple docstring"""

					requires_backends(cls  ,					['note_seq']						)






	@classmethod
	def       _UpperCAmelCase						(      cls  ,					*__a  ,					**__a						):


					"""simple docstring"""

					requires_backends(cls  ,					['note_seq']						)


