Anda di halaman 1dari 2

Estructura de Datos y Algoritmos: rbol Binario de Bsqueda

#include <cstdlib>
#include <iostream>
using namespace std;
struct Nodo{
char Clave;
struct Nodo *Izquierda;
struct Nodo *Derecha;
;
class !""{
Nodo *#aiz; $$ #e%erencia a la raiz del !""
public&
!""'(;
void Insertar'char(;
$$Nodo* )a#aiz'(;
Nodo* "usqueda#ecursiva'char *+ Nodo* nodo(;
Nodo* "uscar'char(;
void Inorden,'Nodo *(;
void Inorden'(;
Nodo* CrearNodo'char *(;
;
!""&&!""'(
{
#aiz - N.));

void !""&&Insertar'char *(
{
Nodo *n - #aiz;
i% ' n -- N.))(
{ #aiz - CrearNodo'*(; return;
/hile' true (
{
i%' * < n0>Clave ({
i% 'n0>Izquierda -- N.))({
n0>Izquierda - CrearNodo'*(;
return;

n - n0>Izquierda;

else{
i% 'n0>Derecha -- N.))({
n0>Derecha - CrearNodo'*(;
return;

n - n0>Derecha;

Nodo* !""&&CrearNodo'char *(
{
Nodo *n;
n - ne/ Nodo'(;
n0>Clave - *;
n0>Izquierda - N.));
n0>Derecha - N.));
return n;

Nodo* !""&&"usqueda#ecursiva'char *+ Nodo* nodo(


{
i%' nodo -- N.)) 11 * -- nodo0>Clave (
return nodo;
i%' * < nodo0>Clave (
return "usqueda#ecursiva' * + nodo0>Izquierda(;
else
return "usqueda#ecursiva' * + nodo0>Derecha(;

Nodo* !""&&"uscar'char 2(
{
return "usqueda#ecursiva'2+#aiz(;

void !""&&Inorden,'Nodo *n(


{
i%' n -- N.)) ( return;
Inorden,'n0>Izquierda(;
cout<<n0>Clave;
Inorden,'n0>Derecha(;

void !""&&Inorden'(
{
Inorden,'#aiz(;
cout<<endl;

int main'(
{
!"" 3equoia;
3equoia4Insertar'565(;
3equoia4Insertar'575(;
3equoia4Insertar'585(;
3equoia4Insertar'595(;
3equoia4Insertar'5:5(;
cout<<;#ecorrido del arbol;<<endl;
3equoia4Inorden'(;
Nodo *p+ *r;
p - ne/ Nodo'(;
p0>Clave - :<;
$$ r - )a#aiz'(;
$$
$$ 3equoia4Inorden'(;
$$s=stem';>!.3?;(;
return ?@IAB3.CC?33;

:4 DibuCe el Drbol creado4


,4 Euestre el resultado del recorrido INF#D?N4
G4 Implemente los recorridos >#?F#D?N = >F3AF#D?N4
H4 )uego de creado el nuevo nodo IpJ con clave :<+ insertarlo al Drbol 3equoia agregando cKdigo en la
%unciKn main'(+ respetando la restricciKn de un Drbol !""+ es decir+ a la derecha del nodo I8J4

Anda mungkin juga menyukai