¿Qué se entiende por ‘profundidad’ en DFS?

Esto es un poco más fácil de visualizar con árboles que con gráficos generales.

Imagine un árbol (binario o de otro tipo), “creciendo hacia abajo”, es decir, con su raíz en la parte superior y las hojas en la parte inferior.

“Profundidad primero” aquí significa que su búsqueda (u otro tipo de recorrido) comenzará en la raíz, y se irá lo más profundo que pueda en alguna dirección, es decir, hasta una hoja, luego rebote un nivel, vaya a otra hoja, etc. Básicamente, la dirección principal del recorrido es vertical .

“Ancho primero” significa que su recorrido visitará los nodos nivel por nivel: primero la raíz, luego todos sus hijos, todos sus hijos, etc., terminando con las hojas. La dirección principal del recorrido es horizontal .

En un gráfico general, no puede visualizar “profundidad” o “amplitud” muy fácilmente, pero puede pensar en ellos en términos de distancia (número de saltos) desde la “raíz”, es decir, el nodo inicial. DFS se desplazará principalmente desde la raíz, solo retrocederá cuando no pueda ir más allá; BFS atravesará principalmente en “círculos” (nodos equidistantes) alrededor de la raíz, solo irá al siguiente “círculo” cuando se quede sin nodos en el anterior.

Profundidad significa la distancia vertical desde la parte superior de algo. Entonces, la profundidad primero simplemente significa “Ir hasta el fondo primero”.

Cuando representa un árbol de búsqueda gráficamente, como el anterior, el significado se vuelve bastante claro. En una primera búsqueda en profundidad, primero debe marcar 1, 2, 3, 4, luego, dado que ha llegado al final, ahora puede comenzar a moverse de izquierda a derecha.

Esto se opone a Breadth First Search que primero verificaría 1, 2, 7, 8.

La profundidad es el número de nodos entre el nodo inicial de DFS y el nodo actual que se está visitando.

El término “profundidad” ha sido elegido en contraste con “amplitud” que se utiliza en BFS. Básicamente, primero profundizas más y más en la estructura del gráfico antes de hacer un seguimiento hacia atrás.

“Profundidad primero” significa ir lo más “profundo” posible . Visita el primer nodo nuevo que encuentra y realiza la búsqueda descubriendo tantos nodos nuevos como sea posible. Si encuentra el nodo que está tratando de encontrar, ha terminado, pero si se queda sin nuevos nodos para buscar, retrocede. Cuando realiza este tipo de búsquedas, puede pensar en el gráfico que se organiza por nivel. La profundidad primero se llama “profundidad primero” porque vas tan lejos como puedes a través de los niveles en el gráfico.