Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Funcion con arboles binarios

Estas en el tema de Funcion con arboles binarios en el foro de C/C++ en Foros del Web. Buenos dias. Necesito ayuda referente a un ejercicio que no soy capaz de hacer funcionar, haber si alguien seria tan amable de echarme un cable. ...
  #1 (permalink)  
Antiguo 13/01/2009, 04:38
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Funcion con arboles binarios

Buenos dias. Necesito ayuda referente a un ejercicio que no soy capaz de hacer funcionar, haber si alguien seria tan amable de echarme un cable.

Necesito una funcion que devuelva por parametro todos los nodos que se encuentren en el mismo nivel que el dado excepto su hermano, es decir, sus nodos primos.
A la funcion se le pasaria como parametro el nodo al cual queremos buscar sus primos, ademas del propio arbol.

Muchas gracias de antemano.
1saludo
  #2 (permalink)  
Antiguo 14/01/2009, 03:07
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Funcion con arboles binarios

Nadie puede ayudarme o darme alguna nocion para hacer este ejercicio?
Gracias
  #3 (permalink)  
Antiguo 15/01/2009, 06:21
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Funcion con arboles binarios

Así sin pensar mucho se me ocurre que crees una función a la que le pases el árbol y el nodo. Dicha función abre y recorre el árbol y busca el nodo. Una vez que lo tengas, coges cual es la profundidad de dicho nodo y recorres el árbol y cuando llegues a dicha profundidad en una rama, coges el nodo y vuela atrás.
Para almacenarlos, un array de nodos?

Hace tiempo que no manejo árboles, por lo que la opción no es nada óptima, pero así me imagino que saldría.

Creo que había una forma de recorrer los árboles que iba leyendo en profundidad, por ejemplo:
1
2 3
4 5 6 7

Se leería 1, después 2 y 3, y al final 4,5,6 y 7. Con esta solución quizás sería más simple. El código:
Código:
void amplitud(tArbol *a)
{
  tCola cola;
  tArbol *aux;
  
  if (a != NULL) {
    crearCola(cola);
    encolar(cola, a);
    while (!colavacia(cola)) {
      desencolar(cola, aux);
      visitar(aux);                                                   //Realiza una operación en nodo
      if (aux->hIzquierdo != NULL) encolar(cola, aux->hIzquierdo );
      if (aux->hDerecho!= NULL) encolar(cola, aux->hDerecho);
    }
  }
}
http://es.wikipedia.org/wiki/%C3%81rbol_binario#Recorridos_en_amplitud_.28o_por _niveles.29
  #4 (permalink)  
Antiguo 19/01/2009, 03:24
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Funcion con arboles binarios

Muchas gracias jtlopez. Intentaré implementarlo asi...haber si hay suerte!
De todas maneras espero alguna otra opinion para la implementacion!
Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:21.