¿Cómo puedo recorrer un árbol no dirigido usando Búsqueda en Profundidad o Búsqueda en Amplitud en JavaScript?

Descubre cómo recorrer un árbol no dirigido utilizando Depth First Search (DFS) o Breadth First Search (BFS) en JavaScript. Aprende técnicas de búsqueda avanzada de manera sencilla y eficiente.

21 nov 2025 • 2 min de lectura • Equipo Q2BSTUDIO

How to traverse an undirected tree using Depth First Search (DFS) or Breadth First Search (BFS) in JavaScript?

¿Cómo puedo recorrer un árbol no dirigido usando Búsqueda en Profundidad o Búsqueda en Amplitud en JavaScript? En este artículo explicamos de forma práctica y concisa dos formas habituales de recorrer un árbol no dirigido: Búsqueda en Profundidad DFS y Búsqueda en Amplitud BFS, con ejemplos en JavaScript y recomendaciones para evitar problemas comunes en grafos no dirigidos.

Concepto básico: un árbol no dirigido es un grafo conectado acíclico. Al recorrerlo con DFS o BFS es importante evitar volver al nodo padre y controlar nodos visitados para prevenir ciclos en caso de que el grafo no sea estrictamente un árbol. En árboles la complejidad de ambos algoritmos es O(n) en tiempo y O(n) en memoria en el peor caso, donde n es el número de nodos.

Ejemplo sencillo de representación usando lista de adyacencia en JavaScript y DFS recursivo: const graph = [[1,2],[0,3],[0,3],[1,2]]; function dfs(node,parent,visited,graph){ visited[node]=true; for(let neigh of graph[node]) if(neigh!==parent) if(!visited[neigh]) dfs(neigh,node,visited,graph); } const visited = new Array(graph.length).fill(false); dfs(0,-1,visited,graph);

DFS iterativo con pila: function dfsIter(start,graph){ const visited = new Array(graph.length).fill(false); const stack = [[start,-1]]; while(stack.length){ const [node,parent] = stack.pop(); if(visited[node]) continue; visited[node]=true; for(let neigh of graph[node]) if(neigh!==parent && !visited[neigh]) stack.push([neigh,node]); } return visited; }

BFS usando cola para recorrido por capas: function bfs(start,graph){ const visited = new Array(graph.length).fill(false); const queue = [start]; visited[start]=true; while(queue.length){ const node = queue.shift(); for(let neigh of graph[node]) if(!visited[neigh]){ visited[neigh]=true; queue.push(neigh); } } return visited; }

Buenas prácticas: marcar nodos visitados en cuanto se extraen o se encolan, pasar el nodo padre en DFS en árboles no dirigidos para evitar retrocesos innecesarios, y preferir estructuras eficientes para la cola y la pila si el grafo es grande. En grafos generales donde existen ciclos, usar solo la marca visited es suficiente; en árboles basta con evitar visitar el padre.

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones personalizadas que integran algoritmos y buenas prácticas de ingeniería. Si necesitas crear una aplicación que incluya recorridos de estructuras de datos, procesamiento en tiempo real o componentes de inteligencia artificial para optimizar búsquedas y análisis, podemos ayudarte con proyectos de software a medida y aplicaciones a medida adaptadas a tu negocio.

Además ofrecemos servicios avanzados de inteligencia artificial, agentes IA y automatización para empresas; si tu proyecto requiere integración con modelos, servicios cloud o pipelines de datos, consulta nuestras capacidades en inteligencia artificial. Trabajamos con servicios cloud aws y azure, ofrecemos ciberseguridad y pentesting, servicios inteligencia de negocio y soluciones con power bi para visualizar resultados y tomar decisiones basadas en datos.

Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Contacta con Q2BSTUDIO para diseñar e implementar recorridos eficientes en estructuras de datos, soluciones a medida y arquitecturas seguras y escalables.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.