Upload
idsystems
View
216
Download
0
Embed Size (px)
Citation preview
8/8/2019 Leccion 5.2 Arboles AVL
1/14
Leccion 5.2 ARBOLES AVL
El Arbol en Monton consisten en el ordenamiento de un conjunto de Elemento en un solo arreglo.
Trabajaremos sobre la siguientes Operaciones en este Tema:
1. Insercin2. Bsqueda3. Eliminacin4. Recorrido (Ordenado)
Insercin
Definicin:
El Concepto de Insercin ya es familiar para nosotros y sabemos que para realizar el mismo no resultacomplejo el procedimiento.
Pero en los rboles en Montn es uno de los Mtodos ms largos para efectuarlo.
Detalle:
Bsicamente lo que hace estos Algoritmos es la Insercin Ordenada. Primero comparan si es posibleinsertar algn Elemento al Arreglo, si es posible hacerlo Ingresa el Elemento a la Ultima posicin.
Despus bsicamente acomoda el Arreglo con el Mtodo de la Burbuja llamando a otra serie deMtodos.
Algoritmos:
Insertar(Arbol, N, Elemento)
Si N a
N -> N + 1OrdMon(Arbol, N)
Salir
//Fin de la condicin//
Imprimir "rbol Lleno..."
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 1
8/8/2019 Leccion 5.2 Arboles AVL
2/14
Salir
OrdMon(Arbol, Total)
ConstMon(Arbol, Total)
Mientras Total > 1
Total -> Total - 1
Burbuja(0, Total)
RecMon(Total, 0)
//Fin del ciclo//
Salir
ConstMon(Arbol, Total)
v -> (Total/2) - 1
Mientras v 0
RecMon(Arbol, Total, v)
v -> v - 1
//Fin del ciclo//
Salir
----
RecMon(Arbol, Total, v)
w -> 2*v+1
Mientras w < Total
Si (w+1) < Total
Si Arbol[w+1] > Arbol[w]
w++
//Fin de la condicin//
Fin de la condicin
Si Arbol[v] Arbol[w]
Salir
//Fin de la condicin//
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 2
8/8/2019 Leccion 5.2 Arboles AVL
3/14
Burbuja(Arbol, v, w)
v -> w
w -> 2*v+1
//Fin del ciclo//
Salir
----
Burbuja(Arbol, v, w)
t -> Arbol[v]
Arbol[v] -> Arbol[w]
Arbol[w] -> t
Salir
Diagrama:
Corrida:
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 3
http://www.programacionfacil.com/_detail/estructura_de_datos/image597.jpg?id=estructura_de_datos%3Aarbol_monton8/8/2019 Leccion 5.2 Arboles AVL
4/14
Bsqueda
Definicin:
El Concepto de Bsqueda es sencillo, simplemente es un mtodo de bsqueda lineal. Existen 3 posibleresultados:
1. Que el rbol este Vaci y no se puede realizar la bsqueda.2. Que el Elemento sea encuentre en el rbol3. Que el Elemento no este dentro del rbol
Detalle:
Se manda al Mtodo Bsqueda el Dato que se desea buscar, se acomoda el rbol en Orden en caso que
no estuviera Ordenado y despus compara con cada uno de los datos.
Algoritmos:
**Busqueda(Arbol, N, Elemento)**
Si N 0
OrdMon(Arbol, N)
i ->
Mientras i < N;i++)
Si Arbol[i] = Elemento
Imprimir "Elemento Encontrado..."
Salir
//Fin de la condicin//
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 4
http://www.programacionfacil.com/_detail/estructura_de_datos/image556.jpg?id=estructura_de_datos%3Aarbol_monton8/8/2019 Leccion 5.2 Arboles AVL
5/14
i -> i + 1
//Fin del ciclo//
Imprimir "El Elemento no esta en el rbol..."
Salir
//Fin de la condicin//
Imprimir "rbol Vaci..."
Salir
Diagrama:
Corrida:
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 5
http://www.programacionfacil.com/_detail/estructura_de_datos/image598.jpg?id=estructura_de_datos%3Aarbol_monton8/8/2019 Leccion 5.2 Arboles AVL
6/14
8/8/2019 Leccion 5.2 Arboles AVL
7/14
t -> Arbol[i]
Arbol[i] -> Arbol[j]
Arbol[j] -> t
j -> j + 1
//Fin del ciclo//
N -> n - 1
Imprimir "Elemento Eliminado..."
Salir
//Fin de la condicin//
i -> i + 1
//Fin del ciclo//
Fin de la condicin
Imprimir "Arbol Vacio... Imposible Eliminar..."
Salir
Diagrama:
Corrida:
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 7
http://www.programacionfacil.com/_detail/estructura_de_datos/image599.jpg?id=estructura_de_datos%3Aarbol_monton8/8/2019 Leccion 5.2 Arboles AVL
8/14
Recorrido (Ordenado)
Definicin:
El Recorrido simplemente ira desplegando cada uno de los Elementos del rbol. Solo existen 2 posiblescasos:
1. Que el rbol este Vaci y no se pueda recorrer2. El rbol tenga Elementos para desplegar
Detalle:
Comparamos para comprobar que el rbol tiene Elementos dentro de el, de ser as Desplegamos cadauno de ellos. De otra manera Desplegamos rbol Vaci.
Algoritmo:
Recorrido(Arbol, N)
Si N 0
i ->
Mientras i < N
Imprimir Arbol[i]
i -> i + 1
//Fin del ciclo//
Salir
//Fin de la condicin//
Imprimir "Arbol Vacio..."
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 8
http://www.programacionfacil.com/_detail/estructura_de_datos/image558.jpg?id=estructura_de_datos%3Aarbol_monton8/8/2019 Leccion 5.2 Arboles AVL
9/14
Salir
Corrida:
Programa Click Here:
#include
#include
class Arbol_Monton
{
private:
int Arbol[25];
int N;
public:
Arbol_Monton()
{
for(int i=0;i
8/8/2019 Leccion 5.2 Arboles AVL
10/14
if(N
8/8/2019 Leccion 5.2 Arboles AVL
11/14
}
}
cout
8/8/2019 Leccion 5.2 Arboles AVL
12/14
}
}
void ConstMon(int n)
{
for(int v=n/2-1;v>=0;v--)
RecMon(n,v);
}
void RecMon(int n,int v)
{
int w=2*v+1;
while(w=Arbol[w])
return;
Burbuja(v,w);
v=w;
w=2*v+1;
}
}
void Burbuja(int i,int j)
{
int t=Arbol[i];
Arbol[i]=Arbol[j];
Arbol[j]=t;
}
void Recorrido()
ESTRUCTURAS DE DATOS LECCION 5.2 ARBOLES AVL Pgina 12
8/8/2019 Leccion 5.2 Arboles AVL
13/14
{
if(N!=0)
{
for(int i=0;i
8/8/2019 Leccion 5.2 Arboles AVL
14/14
cin>>res;
tec.Busqueda(res);
break;
case 3:
cout