Arboles Binarios de Búsqueda en C++
Arboles Binarios de Búsqueda en C++
Arboles Binarios de Búsqueda en C++
Ya con estas definiciones claras sobre arboles;ahora estos son conceptos generales de lo que
es un arbol, para poder implementarlos en lenguaje C++ tenemos que tener conocimientos
previos sobre listas enlazadas y su implementacin.
Cada elemento(nodo) de un rbol ABB cuenta con tres campos:
- Dato(numero, letra, palabra, etc), en este caso usaremos un numero(entero).
- Puntero al nodo derecho
- Puntero al nodo izquierdo
Los punteros tienen que ser del tipo arbol, ya que apuntaran a un nodo del mismo tipo, este
seria un ejemplo de como se seria el tipo arbol ABB.
Primero creamos el nodo:
struct nodo{
int dato;
struct nodo *der;
struct nodo *izq;
};
"Los punteros son variables que guardaran en la memoria la direccin de otra variable" en
este caso la de una estructura llamado nodo.
Recorridos de una arbol
Es la manera recursiva como pasaremos por cada nodo del arbol, existes tres formas.
";
// creado Arbol
\n\n";
";
cin >> n;
cout << endl;
for(int i=0; i<n; i++)
{
cout << " Numero del nodo " << i+1 << ": ";
cin >> x;
insertar( arbol, x);
}
cout << "\n Mostrando ABB \n\n";
verArbol( arbol, 0);
cout << "\n Recorridos del ABB";
cout << "\n\n En orden
";
enOrden(arbol);
";
preOrden(arbol);
";
postOrden(arbol);
Ejercicios resueltos
1. Escribir una funcin que devuelva el nmero de nodos de un rbol binario. Una
solucin recursiva puede ser la siguiente:
funcion nodos(arbol : tipoArbol) : devuelve entero;
inicio
si arbol = vacio entonces devolver 0;
en otro caso devolver (1 + nodos(subarbol_izq) + nodos(subarbol_der));
fin
2. Implemente el recorrido de orden en un rbol: preorden, inorden y posorden.
3. Desarrollar el rbol genealgico de una familia.