public BSNode search(float data) { Queue <BSNode> qs = new Queue <BSNode>(); BSNode tmp = padre; while (!tmp.Equals(null)) { qv.Enqueue(tmp); if (tmp.getData().Equals(data)) { resetVisitados(); return(tmp); } else if (tmp.visitado != true) { tmp.visitado = true; foreach (BSNode adyacente in tmp.adyacentes) { qs.Enqueue(adyacente); qv.Enqueue(adyacente); } } if (qs.Peek().Equals(null)) { resetVisitados(); return(null); } tmp = qs.Peek(); qs.Dequeue(); } return(null); }
public BSNode searchPadre(BSNode head, float data) { BSNode tmp = head; while (!tmp.Equals(null)) { qv.Enqueue(tmp); if (tmp.visitado.Equals(false)) { tmp.visitado = true; foreach (BSNode adyacente in tmp.adyacentes) { adyacente.visitado = true; qv.Enqueue(adyacente); if (adyacente.getData().Equals(data)) { resetVisitados(); tmp = adyacente; return(tmp); } } resetVisitados(); return(null); } } return(null); }