SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL DE LA FUERZA ARMADA
MERIDA-UNEFA
PROF:
JAVIER RIVERA
BACHILLERES:
SUAREZ ADRIANA.
CI:19.383.918
SEGOVIA ROXANA.
CI:21.154.201
GLEUDYS PARRA
CI:20.572.132
SECCION: IST-S6-D01
ARBOL AA
ÁRBOLES AA
DEFINICION:
Los árboles AA, así denominados por las iniciales de su creador, son una simplificación de las reglas de los árboles coloreados y originan
un número bastante menor de situaciones que deben ser analizadas. Además de las reglas de los árboles coloreados, sólo se permiten
nodos rojos como descendientes derechos.
En estos árboles, en lugar de la información sobre el color, se almacena el nivel del nodo; las hojas son de nivel 1. En lugar de color rojo se
habla de enlace derecho horizontal, o de un nodo descendiente derecho con igual nivel que su padre.(Profesor Leopoldo Silva Bijit)
Mediante árboles binarios de búsqueda balanceados, se han desarrollado algoritmos eficientes para mantener diccionarios, que garantizan un
costo logarítmico de las operaciones en peor caso.
n=1______________________1
0
n=2____________________1
0
n=3____________________2
____________________1
0
Árboles AA, de hasta 3 nodos
PROPIEDADES DE LOS ÁRBOLES AA.
El nivel de un hijo izquierdo debe ser menor que el nivel de su padre.
El nivel de un hijo derecho debe ser menor o igual al nivel de su padre.
El nivel de un nieto derecho debe ser menor que el nivel de su abuelo.
Las hojas son de nivel 1.
Los nodos que no son hojas deben tener dos hijos.
El número de nodos visitados, desde la raíz hasta las hojas, por la vía más larga debe ser a lo más el doble del número de nodos recorridos por la
vía más corta. Esto asegura un costo logarítmico para las operaciones.
ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA.
1. ANÁLISIS DE LA OPERACIÓN INSERCIÓN:
Un nuevo nodo que será de nivel 1, se inserta en las hojas, que también son de nivel 1.
Se presentan dos casos.
a)Si se inserta por la izquierda se viola la regla de sólo horizontales derechos, y debe efectuarse una rotación derecha,
descendiendo desde la raíz, se determina la posición para insertar como se observa con la flecha en la figura.
________________1
_________________
_________________1
_________________1
Inserción por la izquierda. Skew
Al centro, se muestra una representación convencional, con un nodo descendiente horizontal izquierdo. En la parte inferior
se muestra luego de una rotación derecha, respecto del padre del nodo insertado; ahora se cumplen las propiedades de un
árbol AA. Se definió esta operación como torcer (skew )
b) Si se inserta por la derecha, si el padre no tiene descendiente derecho no hay modificaciones que efectuar, pero
si el padre es un descendiente derecho se producen dos descendientes horizontales, la situación equivale a dos rojos
adyacentes, y se corrige efectuando una rotación a la izquierda, e incrementando en uno el nivel del nodo central; es decir
con un split. No se requiere en este caso de la operación skew.
ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA.
1. ANÁLISIS DE LA OPERACIÓN INSERCIÓN:
Sin embargo cada nivel de recursión, cuando debe efectuarse una modificación para mantener las propiedades sólo se
efectúa un skew o un split o un incremento de nivel dependiendo de la ruta del nodo.
Ejemplos de inserción.
Si se realiza una inserción de claves en orden ascendente, desde el 1 hasta el 15, se obtiene luego de las operaciones
de rebalance, después de cada inserción, inmediatamente luego de insertado el nodo con valor 15.
Se devuelve siguiendo la ruta desde la raíz al nodo insertado, pero en forma ascendente. Como el nodo 15 cumple las
propiedades, es un árbol AA; se asciende al 14, que también es AA. Pero al ascender al 13, éste tiene dos hijos
horizontales; entonces debe realizarse un split en el nodo 13. El árbol cuya raíz es el nodo con valor 14 es AA, notar que
ésta es la raíz luego del split.
- Inserción de nodo con valor 15 en árbol AA. - Luego de split en nodo con clave 13.
Al ascender al nodo con valor 12, también se cumplen las propiedades de los árboles AA. Pero al ascender al nodo con
valor 10, debe volver a efectuarse un split.
ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA
2. DISEÑO DE LAS OPERACIONES SKEW Y SPLIT.
Este diseño puede realizarse de manera recursiva o de arriba hacia abajo, es así como se encuentra la siguiente la operación
denominada:
 La operación torcer o skew la cual elimina los hermanos horizontales izquierdos bajo el nodo.
• Se desciende por la derecha efectuado rotaciones derechas cuando se encuentra un enlace izquierdo.
• Si un nodo tiene más de un hermano derecho de igual nivel debe partirse o realizar la operación split, aumentando el nivel
de cada segundo nodo en el descenso y se desciende por la derecha, efectuando rotaciones izquierdas.
Debido a que tanto la inserción como el descarte requieren recorrer una ruta desde la raíz hasta las hojas, es preferible realizar
la mantención de las propiedades de los árboles AA, desde abajo hacia arriba.
2.1 Inserción por la izquierda:
a) B de nivel i
Si el subárbol derecho era AA, los nodos C y D deben tener nivel (i-1). la única forma en que un nodo aumenta su nivel es
teniendo ambos hijos de igual nivel. Entonces si antes de insertar el nodo n el árbol era AA, y si el nodo n alcanza grado i
quiere decir que lo ha logrado teniendo hijos de igual nivel.
b) B de nivel (i-1).
El nodo C debe tener nivel (i-2). D puede ser de nivel (i-1) o (i-2). Si A es hijo izquierdo, su
padre tiene nivel (i+1); y si es hijo derecho podría ser de nivel i.
Luego del skew en t, el árbol es AA, es preciso continuar la revisión ascendente si A era un hijo derecho, ya que en este caso
podrían producirse tres nodos consecutivos de igual nivel.
2.2 Inserción por la derecha.
En este caso B debe ser de nivel (i-1). Si en el ascenso por el lado derecho, n incrementó su nivel, debe cumplirse que sus
hijos son de nivel (i-1). El árbol es AA, y no requiere modificaciones.
.ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA
2. DISEÑO DE LAS OPERACIONES SKEW Y SPLIT.
Características
Si niveles de los hijos de t son iguales, aumentar el nivel de t.
Si son diferentes:
Si hijo izquierdo de t es de igual nivel que t: torcer
Si son diferentes:
Si nieto derecho de t es de igual nivel que t: partir.
“Es impotante tener en cuenta que para mantener las propiedades de un árbol AA, es necesario balancear los nodos,
que se recorren al descender para insertar, en forma ascendente hasta la raíz”.
3. ANÁLISIS DEL DESCARTE.
Se refiere al proceso de ajuste de niveles en el ascenso ya que si se ha borrado una hoja en uno de los subárboles
de t, de nivel (i+1). Corresponde recuperar las
propiedades del árbol con raíz A, apuntado por t.
Presenta los siguientes dos casos:
Ascenso por la izquierda.
a. Nivel (i+1). Esto implica que deben ser de nivel i. por ejemplo si se tienen 4 subcasos. E de nivel i o (i-1) y F de nivel i o (i-1)
b. Nivel i. C debe ser (i-1) no importa el nivel
Ascenso por la derecha.
a. Nivel i debe ser de nivel (i-1) luego de corregir nivel sólo en A se procede al siguiente diagrama a la derecha.
b. Nivel i-1. El nivel debe ser (i-1). Luego a la derecha muestra la corrección del nivel de A
.
ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA
4. CENTINELAS Y ENCABEZADOS.
En aplicaciones con estructuras que tienen un inicio y un final, el diseño de las funciones requiere un tratamiento especial en
los bordes este suele ser inicio introduciendo como primer elemento un nodo denominado encabezado, así también para
finalizar la estructura puede agregarse un nodo denominado centinela que facilite las operaciones en la base de la estructura.
CODIGO ARBOL AA
int data;
class nodo {
class nodo *left, *right;
int nivel;
data clave;
} nodo, *pnodo;
pnodo arbol;
//Variables globales
pnodo nil;
nodo centinela;
void initglobalvariables(){
nil=&centinela;
nil->nivel = 0; //nivel del centinela,está bajo las hojas.
nil->left = nil;
nil->right = nil;
}
//Buscar con centinelas
pnodo arbol;
//Varibles globales
pnodo nil;
nodo centinela;
void initglobalvariables(){
nil=&centinela;
nil->nivel = 0; //nivel del centinela, está bajo las hojas.
nil->left = nil;
nil->right = nil;
} //buscarpnodo Buscar2(data x, pnodo p)
{ if (p==nil) return NULL;
while ( p != nil)
{ if (p->clave>x) p=p->left; //primera comparación
else if (p->clave< x) p=p->right; //segunda comparación
else return p; //lo encontró
} return (NULL);
}
CODIGO ARBOL AA
La siguiente tiene una comparación y dos asignaciones en el peor
caso, en cada pasada por el
lazo de repetición. Se emplea esta forma en la operación descarte.
pnodo Buscar1(data x, pnodo p){
pnodo t=p;
if (p==nil) return NULL;
while ( p != nil)
if (p->clave>x) p=p->left; else {t=p; p=p->right;}
if(t->clave==x) return t;
else
return (NULL);
//creacion del nodo
pnodo getnodo(data valor){
pnodo p = (pnodo) malloc(sizeof(nodo));
if (p==NULL) {printf("Error memorian"); exit(1);}
else{
p->clave = valor;
p->left = nil; //apuntan al centinela
p->right = nil;
p->nivel = 1; //hojas en nivel 1.
}
return(p);
}
//recorrer el arbol
void prtnivel(pnodo p){
if (p!= nil) {
prtnivel(p->left);
cout << ("%d,%d ", p->clave, p->nivel);
prtnivel(p->right);
}
}
//operaciones basicas
/* rotación derecha */
pnodo rrot(pnodo t)
{ register pnodo temp=t;
t = t->left;
temp->left = t->right;
t->right = temp;
return (t);
}
/* rotación izquierda */
pnodo lrot (pnodo t)
{ register pnodo temp=t;
t = t->right;
temp->right = t->left;
t->left = temp;
t->nivel++;
return(t);
}
CODIGO ARBOL AA
pnodo skew (pnodo t){
pnodo temp;
if (t->left->nivel== t->nivel ){ //no falla, en los niveles inferiores, debido al centinela
/* rotación derecha */
temp = t;
t = t->left;
temp->left = t->right;
t->right = temp;
}
return (t);
}
pnodo split (pnodo t){
pnodo temp;
if (t->right->right->nivel== t->nivel ){
/* rotación izquierda */
temp = t;
t = t->right;
temp->right = t->left;
t->left = temp;
t->nivel = t->nivel +1;
}
return(t);
}
REFERENCIAS
Silva B, L. (2010).Arboles AA. Capitulo 15. 1,2,3,7,8,9,10. Recuperado de: www2.elo.utfsm.cl/~lsb/elo320/clases/c15.pdf
García, G.(2011) .Arboles y Clasificación. 41,47,48,49, Recuperado de: garciagregorio.webcindario.com/ed/arboles_clasificacion.pdf
Andrés Yedith(2012).balanceo de un arbol binario de búsqueda arboles AA rojos y negros animación estructuras.
Recuperado de: https://www.youtube.com/watch?v=_JRjD6_eeKU
Publicado el 23/08/2015 Árboles Binarios de Búsqueda | Curso de C++ | Episodio 10. Recuperado de:
ttps://www.youtube.com/watch?v=dCT-kuqpIGw

Más contenido relacionado

La actualidad más candente (20)

Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Arboles multicamino
Arboles  multicaminoArboles  multicamino
Arboles multicamino
 
Arboles
Arboles Arboles
Arboles
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Introduccion a Arboles AVL
Introduccion a Arboles AVLIntroduccion a Arboles AVL
Introduccion a Arboles AVL
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Arboles
ArbolesArboles
Arboles
 
Diapositiva de prueba
Diapositiva de pruebaDiapositiva de prueba
Diapositiva de prueba
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRbol avl
áRbol avláRbol avl
áRbol avl
 
Arboles02
Arboles02Arboles02
Arboles02
 
Arn doniel acosta
Arn doniel acostaArn doniel acosta
Arn doniel acosta
 
Arboles AVL Rotaciones
Arboles AVL RotacionesArboles AVL Rotaciones
Arboles AVL Rotaciones
 
Arboles v2
Arboles v2Arboles v2
Arboles v2
 
Estructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosEstructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafos
 

Similar a Árboles AA: definición, propiedades y análisis de operaciones

Similar a Árboles AA: definición, propiedades y análisis de operaciones (19)

Lider zambrano 4to s
Lider zambrano 4to sLider zambrano 4to s
Lider zambrano 4to s
 
Arboles avl
Arboles avlArboles avl
Arboles avl
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Arboles TDAS
Arboles TDASArboles TDAS
Arboles TDAS
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
Insercion Arboles AVL
Insercion Arboles AVLInsercion Arboles AVL
Insercion Arboles AVL
 
Arboles
ArbolesArboles
Arboles
 
Matriz inversa(17 08-2012)
Matriz inversa(17 08-2012)Matriz inversa(17 08-2012)
Matriz inversa(17 08-2012)
 
Arboles
Arboles Arboles
Arboles
 
Árboles Binarios
Árboles BinariosÁrboles Binarios
Árboles Binarios
 
Arboles rojonegros.pptx
Arboles rojonegros.pptxArboles rojonegros.pptx
Arboles rojonegros.pptx
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 
TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
TEC- Árboles R-B Pablo,Cristiam, Luis, BarnumTEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
 
Árboles binarios
Árboles binariosÁrboles binarios
Árboles binarios
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
 
Arboles de busqueda
Arboles de busquedaArboles de busqueda
Arboles de busqueda
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
12. Arboles.ppt
12. Arboles.ppt12. Arboles.ppt
12. Arboles.ppt
 

Último

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 

Último (20)

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 

Árboles AA: definición, propiedades y análisis de operaciones

  • 1. REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL DE LA FUERZA ARMADA MERIDA-UNEFA PROF: JAVIER RIVERA BACHILLERES: SUAREZ ADRIANA. CI:19.383.918 SEGOVIA ROXANA. CI:21.154.201 GLEUDYS PARRA CI:20.572.132 SECCION: IST-S6-D01 ARBOL AA
  • 2. ÁRBOLES AA DEFINICION: Los árboles AA, así denominados por las iniciales de su creador, son una simplificación de las reglas de los árboles coloreados y originan un número bastante menor de situaciones que deben ser analizadas. Además de las reglas de los árboles coloreados, sólo se permiten nodos rojos como descendientes derechos. En estos árboles, en lugar de la información sobre el color, se almacena el nivel del nodo; las hojas son de nivel 1. En lugar de color rojo se habla de enlace derecho horizontal, o de un nodo descendiente derecho con igual nivel que su padre.(Profesor Leopoldo Silva Bijit) Mediante árboles binarios de búsqueda balanceados, se han desarrollado algoritmos eficientes para mantener diccionarios, que garantizan un costo logarítmico de las operaciones en peor caso. n=1______________________1 0 n=2____________________1 0 n=3____________________2 ____________________1 0 Árboles AA, de hasta 3 nodos PROPIEDADES DE LOS ÁRBOLES AA. El nivel de un hijo izquierdo debe ser menor que el nivel de su padre. El nivel de un hijo derecho debe ser menor o igual al nivel de su padre. El nivel de un nieto derecho debe ser menor que el nivel de su abuelo. Las hojas son de nivel 1. Los nodos que no son hojas deben tener dos hijos. El número de nodos visitados, desde la raíz hasta las hojas, por la vía más larga debe ser a lo más el doble del número de nodos recorridos por la vía más corta. Esto asegura un costo logarítmico para las operaciones.
  • 3. ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA. 1. ANÁLISIS DE LA OPERACIÓN INSERCIÓN: Un nuevo nodo que será de nivel 1, se inserta en las hojas, que también son de nivel 1. Se presentan dos casos. a)Si se inserta por la izquierda se viola la regla de sólo horizontales derechos, y debe efectuarse una rotación derecha, descendiendo desde la raíz, se determina la posición para insertar como se observa con la flecha en la figura. ________________1 _________________ _________________1 _________________1 Inserción por la izquierda. Skew Al centro, se muestra una representación convencional, con un nodo descendiente horizontal izquierdo. En la parte inferior se muestra luego de una rotación derecha, respecto del padre del nodo insertado; ahora se cumplen las propiedades de un árbol AA. Se definió esta operación como torcer (skew ) b) Si se inserta por la derecha, si el padre no tiene descendiente derecho no hay modificaciones que efectuar, pero si el padre es un descendiente derecho se producen dos descendientes horizontales, la situación equivale a dos rojos adyacentes, y se corrige efectuando una rotación a la izquierda, e incrementando en uno el nivel del nodo central; es decir con un split. No se requiere en este caso de la operación skew.
  • 4. ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA. 1. ANÁLISIS DE LA OPERACIÓN INSERCIÓN: Sin embargo cada nivel de recursión, cuando debe efectuarse una modificación para mantener las propiedades sólo se efectúa un skew o un split o un incremento de nivel dependiendo de la ruta del nodo. Ejemplos de inserción. Si se realiza una inserción de claves en orden ascendente, desde el 1 hasta el 15, se obtiene luego de las operaciones de rebalance, después de cada inserción, inmediatamente luego de insertado el nodo con valor 15. Se devuelve siguiendo la ruta desde la raíz al nodo insertado, pero en forma ascendente. Como el nodo 15 cumple las propiedades, es un árbol AA; se asciende al 14, que también es AA. Pero al ascender al 13, éste tiene dos hijos horizontales; entonces debe realizarse un split en el nodo 13. El árbol cuya raíz es el nodo con valor 14 es AA, notar que ésta es la raíz luego del split. - Inserción de nodo con valor 15 en árbol AA. - Luego de split en nodo con clave 13. Al ascender al nodo con valor 12, también se cumplen las propiedades de los árboles AA. Pero al ascender al nodo con valor 10, debe volver a efectuarse un split.
  • 5. ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA 2. DISEÑO DE LAS OPERACIONES SKEW Y SPLIT. Este diseño puede realizarse de manera recursiva o de arriba hacia abajo, es así como se encuentra la siguiente la operación denominada:  La operación torcer o skew la cual elimina los hermanos horizontales izquierdos bajo el nodo. • Se desciende por la derecha efectuado rotaciones derechas cuando se encuentra un enlace izquierdo. • Si un nodo tiene más de un hermano derecho de igual nivel debe partirse o realizar la operación split, aumentando el nivel de cada segundo nodo en el descenso y se desciende por la derecha, efectuando rotaciones izquierdas. Debido a que tanto la inserción como el descarte requieren recorrer una ruta desde la raíz hasta las hojas, es preferible realizar la mantención de las propiedades de los árboles AA, desde abajo hacia arriba. 2.1 Inserción por la izquierda: a) B de nivel i Si el subárbol derecho era AA, los nodos C y D deben tener nivel (i-1). la única forma en que un nodo aumenta su nivel es teniendo ambos hijos de igual nivel. Entonces si antes de insertar el nodo n el árbol era AA, y si el nodo n alcanza grado i quiere decir que lo ha logrado teniendo hijos de igual nivel. b) B de nivel (i-1). El nodo C debe tener nivel (i-2). D puede ser de nivel (i-1) o (i-2). Si A es hijo izquierdo, su padre tiene nivel (i+1); y si es hijo derecho podría ser de nivel i. Luego del skew en t, el árbol es AA, es preciso continuar la revisión ascendente si A era un hijo derecho, ya que en este caso podrían producirse tres nodos consecutivos de igual nivel. 2.2 Inserción por la derecha. En este caso B debe ser de nivel (i-1). Si en el ascenso por el lado derecho, n incrementó su nivel, debe cumplirse que sus hijos son de nivel (i-1). El árbol es AA, y no requiere modificaciones.
  • 6. .ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA 2. DISEÑO DE LAS OPERACIONES SKEW Y SPLIT. Características Si niveles de los hijos de t son iguales, aumentar el nivel de t. Si son diferentes: Si hijo izquierdo de t es de igual nivel que t: torcer Si son diferentes: Si nieto derecho de t es de igual nivel que t: partir. “Es impotante tener en cuenta que para mantener las propiedades de un árbol AA, es necesario balancear los nodos, que se recorren al descender para insertar, en forma ascendente hasta la raíz”. 3. ANÁLISIS DEL DESCARTE. Se refiere al proceso de ajuste de niveles en el ascenso ya que si se ha borrado una hoja en uno de los subárboles de t, de nivel (i+1). Corresponde recuperar las propiedades del árbol con raíz A, apuntado por t. Presenta los siguientes dos casos: Ascenso por la izquierda. a. Nivel (i+1). Esto implica que deben ser de nivel i. por ejemplo si se tienen 4 subcasos. E de nivel i o (i-1) y F de nivel i o (i-1) b. Nivel i. C debe ser (i-1) no importa el nivel Ascenso por la derecha. a. Nivel i debe ser de nivel (i-1) luego de corregir nivel sólo en A se procede al siguiente diagrama a la derecha. b. Nivel i-1. El nivel debe ser (i-1). Luego a la derecha muestra la corrección del nivel de A
  • 7. . ANÁLISIS DE OPERACIÓN DEL ÁRBOL AA 4. CENTINELAS Y ENCABEZADOS. En aplicaciones con estructuras que tienen un inicio y un final, el diseño de las funciones requiere un tratamiento especial en los bordes este suele ser inicio introduciendo como primer elemento un nodo denominado encabezado, así también para finalizar la estructura puede agregarse un nodo denominado centinela que facilite las operaciones en la base de la estructura. CODIGO ARBOL AA int data; class nodo { class nodo *left, *right; int nivel; data clave; } nodo, *pnodo; pnodo arbol; //Variables globales pnodo nil; nodo centinela; void initglobalvariables(){ nil=&centinela; nil->nivel = 0; //nivel del centinela,está bajo las hojas. nil->left = nil; nil->right = nil; } //Buscar con centinelas pnodo arbol; //Varibles globales pnodo nil; nodo centinela; void initglobalvariables(){ nil=&centinela; nil->nivel = 0; //nivel del centinela, está bajo las hojas. nil->left = nil; nil->right = nil; } //buscarpnodo Buscar2(data x, pnodo p) { if (p==nil) return NULL; while ( p != nil) { if (p->clave>x) p=p->left; //primera comparación else if (p->clave< x) p=p->right; //segunda comparación else return p; //lo encontró } return (NULL); }
  • 8. CODIGO ARBOL AA La siguiente tiene una comparación y dos asignaciones en el peor caso, en cada pasada por el lazo de repetición. Se emplea esta forma en la operación descarte. pnodo Buscar1(data x, pnodo p){ pnodo t=p; if (p==nil) return NULL; while ( p != nil) if (p->clave>x) p=p->left; else {t=p; p=p->right;} if(t->clave==x) return t; else return (NULL); //creacion del nodo pnodo getnodo(data valor){ pnodo p = (pnodo) malloc(sizeof(nodo)); if (p==NULL) {printf("Error memorian"); exit(1);} else{ p->clave = valor; p->left = nil; //apuntan al centinela p->right = nil; p->nivel = 1; //hojas en nivel 1. } return(p); } //recorrer el arbol void prtnivel(pnodo p){ if (p!= nil) { prtnivel(p->left); cout << ("%d,%d ", p->clave, p->nivel); prtnivel(p->right); } } //operaciones basicas /* rotación derecha */ pnodo rrot(pnodo t) { register pnodo temp=t; t = t->left; temp->left = t->right; t->right = temp; return (t); } /* rotación izquierda */ pnodo lrot (pnodo t) { register pnodo temp=t; t = t->right; temp->right = t->left; t->left = temp; t->nivel++; return(t); }
  • 9. CODIGO ARBOL AA pnodo skew (pnodo t){ pnodo temp; if (t->left->nivel== t->nivel ){ //no falla, en los niveles inferiores, debido al centinela /* rotación derecha */ temp = t; t = t->left; temp->left = t->right; t->right = temp; } return (t); } pnodo split (pnodo t){ pnodo temp; if (t->right->right->nivel== t->nivel ){ /* rotación izquierda */ temp = t; t = t->right; temp->right = t->left; t->left = temp; t->nivel = t->nivel +1; } return(t); }
  • 10. REFERENCIAS Silva B, L. (2010).Arboles AA. Capitulo 15. 1,2,3,7,8,9,10. Recuperado de: www2.elo.utfsm.cl/~lsb/elo320/clases/c15.pdf García, G.(2011) .Arboles y Clasificación. 41,47,48,49, Recuperado de: garciagregorio.webcindario.com/ed/arboles_clasificacion.pdf Andrés Yedith(2012).balanceo de un arbol binario de búsqueda arboles AA rojos y negros animación estructuras. Recuperado de: https://www.youtube.com/watch?v=_JRjD6_eeKU Publicado el 23/08/2015 Árboles Binarios de Búsqueda | Curso de C++ | Episodio 10. Recuperado de: ttps://www.youtube.com/watch?v=dCT-kuqpIGw