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 .
- ¿Cuáles son algunos consejos para crear mi propia biblioteca para competencias de codificación?
- ¿En qué se diferencia un árbol de búsqueda binario de un árbol binario?
- ¿Puede alguien ayudarme a preparar un plan para preparar estructuras de datos y algoritmos en un mes de tiempo desde el punto de vista de las entrevistas?
- Para aprender la codificación, ¿primero se debe aprender un lenguaje o algoritmos?
- ¿Por qué obtengo el índice de cadenas fuera de rango?
“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.