DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

Tamaño: px
Comenzar la demostración a partir de la página:

Download "DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006"

Transcripción

1 ARBOLES ESTRUCTURAS DE DATOS 2006

2 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los cuales es conocido como raíz.

3 Los árboles representan las estructuras no lineales y dinámicas. No lineales, puesto que a cada elemento del árbol pueden seguirle varios elementos. Dinámicas, puesto que la estructura árbol puede cambiar durante la ejecución del programa.

4 EJEMPLOS DE ARBOLES Figura 1 :Árboles

5 CARACTERISTICAS Y PROPIEDADES DE LOS ÁRBOLES EN GENERAL Todo árbol que no es vacío, tiene un único nodo raíz. Un nodo X es descendiente directo de un nodo Y, si el nodo X apunta al nodo Y. X es hijo de Y. Un nodo X es antecesor directo de un nodo Y, si el nodo X apunta al nodo Y. X es el padre de Y. Se dice que todos los nodos que son descendientes directos (hijos) de un mismo nodo (padre), son hermanos. Todo nodo que no tiene ramificaciones (hijos) se conoce con el nombre de terminal u hoja. Todo nodo que no es raíz, ni terminal u hoja se conoce con el nombre de interior.

6 CARACTERISTICAS Y PROPIEDADES DE LOS ÁRBOLES EN GENERAL Grado es el número de descendientes directos de un determinado nodo. Grado del árbol es el máximo grado de todos los nodos del árbol. Nivel es el número de arcos que deben ser recorridos para llegar a un determinado nodo. Por definición la raíz tiene nivel 1. Altura del árbol es el máximo número de niveles de todos los nodos del árbol. Rama es un camino desde el nodo raíz a una hoja.

7 Figura 2 :Árbol General A raíz del árbol El grado de nodo A es 2 B es el hijo de A. C es hijo de A. El grado de nodo B es 3 B es padre de D. D es padre de I. El grado de nodo C es 2 B y C son hermanos. D, E, F son hermanos. El grado de nodo D es 1 I, E, J, K, G, L son hojas. El grado de nodo E es 0 B, D, F, C y H son nodos interiores. Grado del árbol es 3 Nivel del nodo A es 1. Nivel del nodo E es 3. La altura del árbol es 4.

8 ÁRBOLES BINARIOS Definición 1: Un árbol binario es un árbol en el que cada nodo no puede tener mas de dos hijos o descendientes. Es un árbol de grado 2. Definición 2: Un árbol binario es un conjunto finito de nodos, el cual puede ser vacío o un conjunto que consta de un nodo raíz enlazado a dos árboles binarios disjuntos denominados subárbol izquierdo y subárbol derecho. Figura 3 :Árboles Binarios

9 TERMINOLOGIA ÁRBOLES BINARIOS En un árbol binario los hijos se conocen como hijo izquierdo e hijo derecho Un nodo que no tiene hijos se denomina hoja. En la figura 4 B, C son hojas. El nodo raíz se dice que está en el nivel O en el árbol. Los nodos B y C están en el nivel 1. (figura 4) Altura del árbol se define como el nivel más alto del árbol. En la figura 4 la altura del árbol es 2. Figura 4 :Árbol Binario

10 TERMINOLOGIA ÁRBOLES BINARIOS Un árbol binario está balanceado (equilibrado) si cada nodo tiene exactamente dos hijos o no tiene hijos y si cada hoja está al mismo nivel. Figura 5 :Árbol Binario Equilibrado Figura 6 :Árbol Binario no Equilibrado

11 ÁRBOLES BINARIOS TERMINOLOGIA Los subárboles izquierdo y derecho de un árbol binario deben ser subconjuntos disjuntos, esto es, ningún nodo puede estar en ambos subárboles. Ejemplo: (a) (b) Figura 7 :Árboles Binarios: a) no Disjunto. b) Disjunto

12 ÁRBOLES BINARIOS DISTINTOS, SIMILARES Y EQUIVALENTES ÁRBOLES BINARIOS DISTINTOS Dos árboles binarios son distintos cuando sus estructuras son diferentes Figura 8 :Árboles Binarios distintos

13 ÁRBOLES BINARIOS DISTINTOS, SIMILARES Y EQUIVALENTES ÁRBOLES BINARIOS SIMILARES Dos árboles binarios son similares cuando sus estructuras son idénticas, pero la información que contiene sus nodos difiere entre sí. Figura 9 :Árboles Binarios similares

14 ÁRBOLES BINARIOS DISTINTOS, SIMILARES Y EQUIVALENTES ÁRBOLES BINARIOS EQUIVALENTES Dos árboles binarios son equivalentes si son similares y además los nodos contienen la misma información. Figura 10 :Árboles Binarios equivalentes

15 ÁRBOLES BINARIOS COMPLETOS Se define como un árbol en el que todos sus nodos, excepto los del último nivel, tienen dos hijos; el subárbol izquierdo y el subárbol derecho. Figura 11 :Árbole Binario completo

16 REPRESENTACION DE LOS ÁRBOLES GENERALES COMO BINARIOS Los pasos que se deben aplicar para lograr la conversión del árbol general a binario son los siguientes: Deben enlazarse los hijos de cada nodo en forma horizontal (los hermanos). Debe enlazarse en forma vertical el nodo padre con el hijo que se encuentra más a la izquierda. Debe rotarse el diagrama resultante, aproximadamente 45 grados hacia la izquierda y así se obtendrá el árbol binario correspondiente.

17 REPRESENTACION DE LOS ÁRBOLES GENERALES COMO BINARIOS Figura 12 : Conversión de un árbol general en un árbol binario. (a) Árbol general. (b) Árbol binario luego de aplicar pasos 1 y 2. (c) Árbol binario luego de aplicar el paso 3.

18 REPRESENTACION DE LOS ÁRBOLES GENERALES COMO BINARIOS

19 REPRESENTACION DE LOS ÁRBOLES GENERALES COMO BINARIOS Todo árbol binario obtenido a partir de un árbol general, debe cumplir lo siguiente: En la rama derecha de cada nodo, excepto el nodo raíz, si ésta es distinta de vacío se encuentra un nodo que era hermano de éste en el árbol general. En la rama izquierda de cada nodo (si ésta es distinta de vacío), se encuentra un nodo que era hijo de éste en el árbol generado.

20 REPRESENTACION DE ÁRBOLES BINARIOS EN MEMORIA Existen dos formas tradicionales de representar un árbol binario en memoria. Por medio de listas enlazadas, variables dinámicas. Por medio de arreglos.

21 REPRESENTACION DE ÁRBOLES BINARIOS EN MEMORIA. POR MEDIO DE LISTAS ENLAZADAS. Los nodos del árbol binario serán representadas como registros, que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar los subárboles izquierdo y derecho respectivamente del nodo en cuestión. Dado el siguiente nodo T: Donde: IZQ: campo donde se almacena la dirección del subárbol izquierdo del nodo T. INFO: campo donde se almacena la información de interés del nodo. DER: campo donde se almacena la dirección del subárbol derecho del nodo T.

22 REPRESENTACION DE ÁRBOLES BINARIOS EN MEMORIA. POR MEDIO DE LISTAS ENLAZADAS. La definición de un árbol binario en lenguaje algorítmico es como sigue. Enlace = ˆ nodo Nodo = registro IZQ: tipo enlace INFO: tipo dato DER: tipo enlace {Fin de la definición Nota: se utiliza ˆ para representar el concepto de dato tipo puntero.

23 REPRESENTACION DE ÁRBOLES BINARIOS EN MEMORIA. POR MEDIO DE LISTAS ENLAZADAS. Figura 13 : Representación de un árbol binario en memoria. (a) Árbol binario. (b) Árbol binario representación memoria.

24 REPRESENTACION DE ÁRBOLES BINARIOS EN MEMORIA. POR MEDIO DE ARREGLOS. (b) 2 n -1= 2 4-1=16-1=15 (a) Figura 14 : Representación de un árbol binario en memoria. (a) Árbol binario. (b) Árbol binario representación memoria con arreglos.

25 REPRESENTACION DE ÁRBOLES BINARIOS EN MEMORIA. POR MEDIO DE ARREGLOS. Para calcular el número de elementos de un árbol es: 2 n -1. n = nivel de profundidad. Dado un nodo I, padre de I pos = [I/2] Dado un nodo I, hijo izq. pos = 2*I Dado un nodo I; hijo der. pos= 2* I + 1 Desventaja: el espacio que hay que dejar disponible, sino se le asigna hijo izq. o der. el espacio se esta multiplicando. Cuando se trabaja con árboles degenerados se pierde mucho espacio.

26 ÁRBOLES DE EXPRESIÓN Los árboles binarios se utilizan para representar expresiones en memoria, esencialmente en compiladores de lenguajes de programación CONSTRUCCION DE ÁRBOLES DE EXPRESION Los paréntesis no se almacenan en el árbol pero están implicados en la forma del árbol. Si se supone que todos los operadores tienen dos operandos, se puede representar una expresión por un árbol binario cuya raíz contiene un operador y cuyos subárboles izquierdo y derecho son los operandos izq. y der. respectivamente. Cada operando puede ser una letra o una subexpresión representada como un subárbol. Todos los operandos letras se almacenan en nodos hojas.

27 ÁRBOLES DE EXPRESIÓN Ejemplo 1: Dada la expresión (X+Y) * (A-B) construir el árbol de expresión.

28 ÁRBOLES DE EXPRESIÓN Ejemplo 3: Deducir la expresión que representa el siguiente árbol binario. 1. X+Y 2. A*(X+Y) 3.(A*(X+Y)) *C Sol: (A*(X+Y)) *C

29 RECORRIDOS EN ÁRBOLES BINARIOS Recorrer un árbol binario significa visitar los nodos del árbol en forma sistemática, de tal manera que todos los nodos del mismo sean visitados una sola vez. Existen tres formas diferentes de efectuar el recorrido (todos de forma recursiva) los cuales son: Recorrido en Preorden Recorrido en Inorden Recorrido en Posorden

30 RECORRIDOS EN ÁRBOLES BINARIOS RECORRIDO EN PREORDEN Visitar raíz (escribir la información del nodo). Recorrer el subárbol izquierdo en preorden. Recorrer el subárbol derecho en preorden.

31 RECORRIDOS EN ÁRBOLES BINARIOS Algoritmo: Preorden (nodo) Si nodo Nil entonces { Visitar el nodo (escribir nodo Info) Regresar a Preorden con (nodo Izq) Regresar a Preorden con (nodo der) Fin. El valor en cada nodo es procesado conforme se pasa por cada nodo. Después de que se procese el valor de un nodo dado, son procesados los valores del subárbol izquierdo y a continuación los valores en el subárbol derecho.

32 RECORRIDOS EN ÁRBOLES BINARIOS RECORRIDO EN INORDEN Recorrer el subárbol izquierdo en Inorden Visitar raíz (procesar el valor en el nodo). Recorrer el subárbol derecho en Inorden

33 RECORRIDOS EN ÁRBOLES BINARIOS Algoritmo: Inorden (nodo) Si nodo Nil entonces { Regresar a Inorden (nodo Izq) Visitar el nodo (escribir nodo Info) Regresar a Inorden con (nodo der) Fin. El valor en un nodo no es procesado en tanto no sean procesados los valores de su subárbol izquierdo.

34 RECORRIDOS EN ÁRBOLES BINARIOS RECORRIDO EN POSORDEN Recorrer el subárbol izquierdo en Posorden Recorrer el subárbol derecho en Posorden Visitar raíz (procesar el valor en el nodo).

35 RECORRIDOS EN ÁRBOLES BINARIOS Algoritmo: Posorden (nodo) Si nodo Nil entonces { Regresar a Posorden (nodo Izq) Regresar a Posorden con (nodo der) Visitar el nodo (escribir nodo Info) Fin. El valor en cada nodo no se imprime hasta que son impresos los valores de sus hijos.

36 DEFINICIÓN #define NULL 0 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT struct nodo { struct nodo *izq; tipo info; struct nodo *der; ; Con esta definición de ArbolB las operaciones asociadas especificadas en el TAD quedarían del siguiente modo:

37 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Inicializa el Árbol Binario a través del apuntador raíz. void InicializarArbolB (struct nodo **raiz) { (*raiz)=null;

38 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Crea un Árbol Binario con un solo nodo, el nodo Raíz. struct nodo *CrearArbolB(int valor) { struct nodo *nuevo; if (!ArbolBLleno()) { nuevo = new nodo; nuevo ->info = valor; nuevo ->izq = NULL; nuevo ->der = NULL; return nuevo; else cout << "Árbol Overflow ";

39 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT A partir de dos árboles binarios y de un valor de tipo base, el resultado es un nuevo árbol binario cuyo nodo raíz contiene el valor de tipo base y en el que los árboles originales pasan a ser subárboles izquierdo y derecho. struct nodo * CombArbolB(struct nodo *B1,struct nodo *B2, int valor) { struct nodo *nuevo; if (!ArbolBLleno()) { nuevo = CrearArbolB(valor); nuevo->izq=b1; nuevo->der=b2; return nuevo; else cout << "Árbol Overflow ";

40 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Inserta un nodo en el Árbol Binario como hijo Izquierdo. bool InsHijoIzq(struct nodo *p, int valor) { struct nodo *nuevo; if (p!=null) if (!ArbolBLleno()) { nuevo = CrearArbolB(valor); p->izq = nuevo; return true; else { cout << "Nodo P No Existe "; return false; else { cout << "Árbol Overflow "; return false;

41 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Inserta un nodo en el Árbol Binario como hijo Derecho. bool InsHijoDer(struct nodo *p, int valor) { struct nodo *nuevo; if (p!=null) if ((!ArbolBLleno())) { nuevo = CrearArbolB(valor); p->der = nuevo; return true; else { cout << "Nodo P No Existe "; return false; else { cout << "Árbol Overflow "; return false;

42 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Dado un Árbol, elimina el nodo cuya dirección se envía como parámetro en Ptr. void ElimNodo(struct nodo *ptr) { struct nodo *ant; struct nodo *temp; temp = ptr; if (ptr->der==null) ptr=ptr->izq; else if (ptr->izq==null) ptr=ptr->der; else { if (ant==ptr) ant->izq = temp->izq; else ant->der = temp->izq; delete temp; temp=ptr->izq; ant=ptr; while(temp->der!=null) { ant = temp; temp = temp->der; ptr->info = temp->info;

43 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Dado un Árbol Binario devuelve la información almacenada en su nodo raíz. int DatoRaiz(struct nodo *p) { return p->info; Devuelve el valor verdadero si el Árbol Binario está vacío y falso en caso contrario. bool ArbolBVacio(void) { return (raiz==null);

44 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Devuelve el valor verdadero si el Árbol Binario está lleno y falso en caso contrario. bool ArbolBLleno(void) { struct nodo *p; p = new nodo; if (p!=null) { delete p; return false; else return true;

45 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Permite que una vez que no se requiera más de la utilización del Árbol Binario, liberar este espacio. void LiberarNodos( const struct nodo Tree) { if (Tree!= NULL) { LiberarNodos(Tree->izq); LiberarNodos(Tree->der); delete Tree;

46 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Recorridos en el árbol binario void RecorrerPreOrdenArbol (struct nodo **raiz) { if ((*raiz)!=null) { cout << " " << (*raiz)->info; RecorrerPreOrdenArbol(&((*raiz)->izq)); RecorrerPreOrdenArbol(&((*raiz)->der)); void RecorrerInOrdenArbol (struct nodo **raiz) { if ((*raiz)!=null) { RecorrerInOrdenArbol (&((*raiz)->izq)); cout << " " << (*raiz)->info; RecorrerInOrdenArbol (&((*raiz)->der));

47 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Recorridos en el árbol binario void RecorrerPostOrdenArbol (struct nodo **raiz) { if ((*raiz)!=null) { RecorrerPostOrdenArbol (&((*raiz)->izq)); RecorrerPostOrdenArbol (&((*raiz)->der)); cout << " " << (*raiz)->info;

48 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO UTILIZANDO STRUCT Busca un elemento en el árbol binario int EstaenArbol(struct nodo **raiz, int elem) { if ((*raiz)==null) return 0; else if (elem==((*raiz)->info)) return 1; else return (EstaenArbol((&((*raiz)->izq)),elem) EstaenArbol((&((*raiz)->der)),elem));

49 ARBOL BINARIO DE BUSQUEDA Un árbol binario de búsqueda (que no tiene los valores duplicados de nodos) tienen la característica que los valores en cualquier subárbol izquierdo son menores que el valor en sus nodos padres y los valores en cualquier subárbol derecho son mayores que el valor en sus nodos padres.

50 ARBOL BINARIO DE BUSQUEDA Recorrido del árbol: Preorden: Inorden: Posorden:

51 CREACION DE UN ARBOL BINARIO DE BUSQUEDA Supongamos que se desea almacenar los números: en un árbol binario de búsqueda. Siguiendo la regla, dado un nodo en el árbol todos los datos a su izquierda deben ser menores que todos los datos del nodo actual, mientras que todos los datos a ala derecha deban ser mayores, que dichos datos. Inicialmente el árbol esta vacío y se le debe insertar el 8. A continuación viene el 3. Ya que 3 es menor que 8, el 3 debe ir en el subárbol izquierdo.

52 CREACION DE UN ARBOL BINARIO DE BUSQUEDA A continuación viene el 3. Ya que 3 es menor que 8, el 3 debe ir en el subárbol izquierdo.

53 CREACION DE UN ARBOL BINARIO DE BUSQUEDA A continuación se ha de insertar 1 que es menor que 8 y que 3; por lo tanto irá a la izquierda y debajo de 3.

54 CREACION DE UN ARBOL BINARIO DE BUSQUEDA Cada nuevo elemento se inserta como una hoja del árbol. Los restantes elementos se pueden situar fácilmente. Una propiedad de los árboles binarios de búsqueda es que no son únicos para los datos dados.

55 CREACION DE UN ARBOL BINARIO DE BUSQUEDA Ejemplo: Construir un árbol binario para almacenar los datos 12, 8, 7, 16 y 11.

56 CONSTRUCCION DE UN ÁRBOL BINARIO DE BÚSQUEDA A PARTIR DE RECORRIDO INORDEN, PREORDEN, POSORDEN. Si se dan los recorridos inorden y preorden se procede la siguiente manera: En el preorden el primer elemento es el nodo raíz y los siguientes son nodo raíz de los demás. Se busca en el inorden ese nodo raíz y se divide en subárbol izquierdo y derecho. En el preorden se busca el siguiente nodo raíz y en el inorden los subárboles y así sucesivamente hasta agotar los valores.

57 Ejemplo: Dado los valores: Inorden Preorden Construir el árbol binario de búsqueda correspondiente. Se busca en el preorden el primer elemento que es nodo raíz. Se busca en el inorden ese valor y se divide en subárbol izquierdo y derecho.

58 Se busca en el preorden el siguiente nodo raíz y se subdivide en subárbol izquierdo y derecho y así sucesivamente.

59 Ejemplo: Un árbol binario tiene 10 nodos. El recorrido es inorden y preorden. Son dados como sigue. Dibuje el árbol. Inorden: ABCEDFJGIH Preorden: JCBADEFIGH

60 Ejemplo: Dados los valores: Inorden: Posorden: Construir el árbol binario de búsqueda correspondiente. Se busca en el posorden el último valor que es el nodo raíz. Se busca en inorden el valor y se divide en subárbol izquierdo y derecho.

61 Se busca en posorden siguiente nodo raíz que es 42. Se busca en posorden siguiente nodo raíz que es 13.

62 El árbol binario de búsqueda es una estructura sobre la cual se pueden realizar eficientemente las operaciones de búsqueda, inserción y eliminación. Búsqueda (nodo, valor) Algoritmo Si nodo <> Nil OPERACIONES DE BÚSQUEDA, INSERCCION Y ELIMINACION Entonces Si valor < nodo info. Entonces Búsqueda (nodo izq., valor) Sino Si valor > nodo info. Fin Entonces Búsqueda (nodo der., valor) Sino escribir ( nodo existe ) Fin Sino escribir ( Nodo no se encuentra en el árbol ) Fin.

63 INSERCION EN UN ARBOL BINARIO DE BUSQUEDA Debe compararse la clave a insertar con la raíz del árbol. Si es mayor, debe comenzarse hacia el subárbol derecho. Si es menor debe comenzarse hacia el subárbol izquierdo. Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes condiciones: el subárbol derecho es igual a vacío. El subárbol izquierdo es igual a vacío, en cuyo caso se procederá a insertar el elemento en el lugar que le corresponde. La clave que quiere insertarse es igual a la raíz del árbol; en cuyo caso no se realiza la inserción.

64 INSERCION EN UN ARBOL BINARIO DE BUSQUEDA Algoritmo Si nodo <> Nil Entonces Si valor < nodo info. Entonces Inserción (nodo izq., valor) Sino Si valor > nodo info. Fin Entonces Inserción (nodo der., valor) Sino escribir ( nodo existe ) Fin Sino { crear (nuevo nodo) Fin. Hacer nuevo nodo izq. = Nil; Hacer nuevo nodo der. = Nil; Nuevo nodo info. = valor; Nodo = nuevo nodo

65 INSERCION EN UN ARBOL BINARIO DE BUSQUEDA Ejemplo: Supóngase que se quiere insertar los siguientes valores en un árbol binario de búsqueda que se encuentra vacío Y así sucesivamente hasta que se agoten los valores.

66 ELIMINACION EN UN ARBOL BINARIO DE BUSQUEDA Se debe distinguir los siguientes casos: Si el nodo a borrar es terminal u hoja simplemente se suprime. Si el nodo a borrar tiene un solo descendiente, entonces tiene que sustituirse por ese descendiente. Si el nodo a borrar tiene los dos descendientes entonces se tiene que sustituir por el nodo que se encuentra más a la izquierda en el subárbol derecho o por el nodo que se encuentra más a la derecha en el subárbol izquierdo.

67 Algoritmo Eliminacion(nodo,infor) 1. Si nodo <> Nil Entonces 1.1 Si infor < nodo info. Entonces Eliminación (nodo izq, infor) Sino Si infor > nodo info Entonces Eliminación (nodo der, infor) Sino hacer otro nodo A Si otro der = NULL Entonces hacer nodo otro izq BSino Si otro izq = NULL Entonces hacer nodo otro der Sino hacer Aux otro izq Y Aux1 Aux CRepetir mientras Aux der <> NULL Hacer Aux1 Aux y Aux Aux der Fin. Hacer otro info Aux info otro aux Y Aux1 der Aux izq. Fin (condicional del paso B) Fin (condicional del paso A) Fin (condicional del paso 1.1.1) Fin (condicional del paso 1.1) Quita (otro) {libera la memoria del nodo Sino escribir ( el nodo no se encuentra en el árbol ) Fin

68 Ejemplo: Supóngase que se desea eliminar las siguientes claves del árbol binario de búsqueda: Claves:

69 Eliminación clave: 22 Eliminación clave: 99

70 Eliminación clave: 87 Eliminación clave: 120

71 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO DE BÚSQUEDA UTILIZANDO STRUCT DEFINICIÓN #define NULL 0 struct nodo { struct nodo *izq; tipo info; struct nodo *der; ; Con esta definición de ArbolBB las operaciones asociadas especificadas en el TAD quedarían del siguiente modo:

72 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO DE BÚSQUEDA UTILIZANDO STRUCT Inicializa el Árbol Binario de búsqueda a través del apuntador raíz. void CrearArbolBB (struct nodo **raiz) { (*raiz)=null;

73 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO DE BÚSQUEDA UTILIZANDO STRUCT void InsercionValorArbol (struct nodo **raiz, int valor) { if ((*raiz)!=null) if (valor<((*raiz)->info)) InsercionValorArbol(&((*raiz)->izq),valor); else if (valor>((*raiz)->info)) InsercionValorArbol(&((*raiz)->der),valor); else cout << "El nodo existe en el arbol\n"; else { struct nodo *n; n=new nodo; n->izq=null; n->der=null; n->info=valor; (*raiz)=n;

74 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO DE BÚSQUEDA UTILIZANDO STRUCT void EliminacionValorArbol (struct nodo **raiz, int valor) { struct nodo *Otro, *Aux, *Aux1; Otro=new nodo; Aux=new nodo; Aux1=new nodo; if ((*raiz)!=null) { if (valor<((*raiz)->info)) EliminacionValorArbol(&((*raiz)->izq),valor); else if (valor>((*raiz)->info)) EliminacionValorArbol(&((*raiz)->der),valor); else { Otro=*raiz; if ((Otro->der)==NULL) (*raiz)=otro->izq; else { if ((Otro->izq)==NULL) (*raiz)=(otro->der); else { Aux=(Otro->izq); Aux1=Aux; while ((Aux->der)!=NULL) { Aux1=Aux; Aux=(Aux->der); (Otro->info)=(Aux->info); Otro=Aux; (Aux1->der)=(Aux->izq); delete(otro); else cout << "El nodo no se encuentra en el arbol\n";

75 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO DE BÚSQUEDA UTILIZANDO STRUCT Recorridos en el árbol binario void RecorrerPreOrdenArbol (struct nodo **raiz) { if ((*raiz)!=null) { cout << " " << (*raiz)->info; RecorrerPreOrdenArbol(&((*raiz)->izq)); RecorrerPreOrdenArbol(&((*raiz)->der)); void RecorrerInOrdenArbol (struct nodo **raiz) { if ((*raiz)!=null) { RecorrerInOrdenArbol (&((*raiz)->izq)); cout << " << (*raiz)->info; RecorrerInOrdenArbol (&((*raiz)->der));

76 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO DE BÚSQUEDA UTILIZANDO STRUCT Recorridos en el árbol binario void RecorrerPostOrdenArbol (struct nodo **raiz) { if ((*raiz)!=null) { RecorrerPostOrdenArbol (&((*raiz)->izq)); RecorrerPostOrdenArbol (&((*raiz)->der)); cout << " " << (*raiz)->info;

77 IMPLEMENTACIÓN DINÁMICA DEL ÁRBOL BINARIO DE BÚSQUEDA UTILIZANDO STRUCT Busca un elemento en el árbol binario de búsqueda void BusquedaValorArbol (struct nodo **raiz, int valor) { if ((*raiz)!=null) if (valor<((*raiz)->info)) BusquedaValorArbol(&((*raiz)->izq),valor); else if (valor>((*raiz)->info)) BusquedaValorArbol(&((*raiz)->der),valor); else cout << "El nodo existe\n"; else cout << "El nodo no se encuentra en el arbol\n";

78 GRACIAS POR SU ATENCIÓN HASTA LA PRÓXIMA CLASE

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS

Más detalles

Capítulo 6. ÁRBOLES.

Capítulo 6. ÁRBOLES. 67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Árbol binario Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Un Árbol Binario es un conjunto finito de Elementos, de nombre Nodos de forma que: El Árbol Binario

Más detalles

Árboles Binarios Ordenados Árboles AVL

Árboles Binarios Ordenados Árboles AVL Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Recordatorio... Se acerca la fecha de la primera entrega

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no

Más detalles

ÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES 2-3-4. ÁRBOLES

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004 Árboles Notas de Clase Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia 21 de febrero de 2004 Índice 1. Definición 1 2. Términos Básicos 2

Más detalles

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Arboles Binarios de Búsqueda

Arboles Binarios de Búsqueda Arboles Binarios de Búsqueda Algoritmos y Estructuras de Datos Departamento de Electricidad y Electrónica (UPV/EHU) Arboles Binarios de Búsqueda p.1/52 Arboles Binarios Arbol binario: árbol ordenado de

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia

Más detalles

Clase 32: Árbol balanceado AVL

Clase 32: Árbol balanceado AVL Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes

Más detalles

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos. UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.

Más detalles

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15 Árboles balanceados Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1 Árboles balanceados Los algoritmos en árboles binarios de búsqueda dan buenos resultados en el caso promedio pero el

Más detalles

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Árboles Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Paula Echenique Una de las estructuras de datos más importantes

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda

Más detalles

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista: Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para

Más detalles

ESTRUCTURAS DE DATOS ÁRBOLES 143

ESTRUCTURAS DE DATOS ÁRBOLES 143 ESTRUCTURAS DE DATOS ÁRBOLES 143 TEMA 4. ÁRBOLES 4.1. CONCEPTOS GENERALES. Un árbol es una estructura de datos ramificada (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí

Más detalles

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

Más detalles

Estructuras de datos: Proyecto 2

Estructuras de datos: Proyecto 2 Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe

Más detalles

Listas, Pilas, Colas y Punteros. Semana 3

Listas, Pilas, Colas y Punteros. Semana 3 Listas, Pilas, Colas y Punteros Semana 3 Dictado por Marco González Núñez 14 de Febrero de 2011 Estructuras de datos simples Hoy hablaremos de lo que sin duda me motivó a crear este curso que son los punteros,

Más detalles

Ing. Manuel Ramírez López ITESCA

Ing. Manuel Ramírez López ITESCA ANTOLOGÍA DE ESTRUCTURA DE DATOS 2 Ing. Manuel Ramírez López ITESCA Estructura de Datos Antología de la Materia 2 Instituto Tecnológico Superior de Cajeme Carretera Internacional Km. 2 Teléfono (644) 415

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto de Computación - Facultad de Ingeniería - Universidad de la República Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo

Más detalles

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas: Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Programación Genética

Programación Genética Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino

Más detalles

Árboles binarios de búsqueda

Árboles binarios de búsqueda Clase 27 Árboles binarios de búsqueda Árboles binarios de búsqueda En la clase anterior, definimos el concepto de árbol binario de búsqueda como un árbol binario de nodos que contienen una clave ordenada

Más detalles

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios

Más detalles

Árboles de Búsqueda Binaria. Agustín J. González ELO-320: Estructura de Datos y Algoritmos

Árboles de Búsqueda Binaria. Agustín J. González ELO-320: Estructura de Datos y Algoritmos Árboles de Búsqueda Binaria Agustín J. González ELO-320: Estructura de Datos y Algoritmos 1 Introducción Los árboles de búsqueda son estructuras de datos que soportan las siguientes operaciones de conjuntos

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda<T>

MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda<T> MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda Descripción General El presente Manual de usuario pretende describir en detalle el conjunto de funcionalidades de la Aplicación desarrollada para la

Más detalles

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. DEFINICIÓN Un grafo consta de un conjunto de nodos(o vértices) y un conjunto de arcos (o aristas). Cada arco de un grafo se especifica mediante un par de nodos. Denotemos

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales Estructura de Datos TDA: Listas Prof. Mauricio Solar Prof. Lorna Figueroa Parte del material fue obtenido de Lic. Claudio Barúa Primer Semestre, 2010 Indice Tipos de estructura de datos lineales Listas

Más detalles

Estructuras de Datos y Algoritmos. Árboles de Expresión

Estructuras de Datos y Algoritmos. Árboles de Expresión Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.

Más detalles

Árboles binarios de búsqueda ( BST )

Árboles binarios de búsqueda ( BST ) Árboles binarios de búsqueda ( BST ) mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 24.04.2015 Arbol Binario de Búsqueda Un árbol binario de búsqueda (Binary Search Tree [BST]) es un árbol

Más detalles

Estructuras de Datos Abstractas en Lenguaje Java

Estructuras de Datos Abstractas en Lenguaje Java Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Industrial Estructuras de Datos Abstractas en Lenguaje Java Listas Enlazadas, Colas, Pilas y Árboles Binarios Creado por

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA DE DATOS: ARREGLOS ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción

Más detalles

Pilas y Colas. Capítulo 3

Pilas y Colas. Capítulo 3 Pilas y Colas Capítulo 3 Pilas Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Qué es PHP? PHP (Hypertext Preprocessor). Es un lenguaje de programación: De código

Más detalles

14. ÁRBOLES. 14.1 Fundamentos y terminología básica

14. ÁRBOLES. 14.1 Fundamentos y terminología básica Ricardo Ferrís / Jesús Albert Algoritmos y estructuras de datos I 14. ÁRBOLES 14.1 FUNDAMENTOS Y TERMINOLOGÍA BÁSICA... 79 14.2. ÁRBOLES BINARIOS... 81 14.3. FUNDAMENTOS... 82 14.3. OPERACIONES CON ÁRBOLES

Más detalles

Organización de Computadoras

Organización de Computadoras Organización de Computadoras Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre de 2015 Proyecto N 1 Programación en Lenguaje C El objetivo principal

Más detalles

EJERCICIOS SOBRE : NÚMEROS ENTEROS

EJERCICIOS SOBRE : NÚMEROS ENTEROS 1.- Magnitudes Absolutas y Relativas: Se denomina magnitud a todo lo que se puede medir cuantitativamente. Ejemplo: peso de un cuerpo, longitud de una cuerda, capacidad de un recipiente, el tiempo que

Más detalles

Tema 09: TAD Árbol binario

Tema 09: TAD Árbol binario Tema 09: TAD Árbol binario M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Introducción El árbol binario

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12 Teoría de conjuntos. Teoría de Conjuntos. personal.us.es/elisacamol Curso 2011/12 Teoría de Conjuntos. Teoría de conjuntos. Noción intuitiva de conjunto. Propiedades. Un conjunto es la reunión en un todo

Más detalles

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar

Más detalles

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx Resumen Se dan algunas definiciones básicas relacionadas con la divisibilidad

Más detalles

Módulo 9 Sistema matemático y operaciones binarias

Módulo 9 Sistema matemático y operaciones binarias Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional

Más detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 1. LOS NÚMEROS ENTEROS. UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar

Más detalles

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos Introducción a la Teoría de Grafos Flavia Bonomo fbonomo@dc.uba.ar do. Cuatrimestre 009 Árboles Un árbol es un grafo conexo y acíclico (sin ciclos). Un bosque es un grafo acíclico, o sea, una unión disjunta

Más detalles

INTRODUCCION A LA PROGRAMACION DE PLC

INTRODUCCION A LA PROGRAMACION DE PLC INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes

Más detalles

Contenidos. Archivos en C++ Archivos en C++ Introducción

Contenidos. Archivos en C++ Archivos en C++ Introducción Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad: El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un

Más detalles

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones Contenidos 1. Justificación del uso de funciones. 2. Declaración de funciones: prototipos. 3. Prototipos y ficheros de cabecera. 4. Polimorfismo (sobrecarga de funciones). 5. Argumentos formales y actuales.

Más detalles

Estructuras de Datos en Java

Estructuras de Datos en Java Estructuras de Datos en Java 1. Antecedentes Introducción a la Orientación a Objetos La programación orientada a objetos (POO) es una nueva manera de enfocar la programación. Desde sus comienzos, la programación

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

Matrices Invertibles y Elementos de Álgebra Matricial

Matrices Invertibles y Elementos de Álgebra Matricial Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices

Más detalles

GENERACIÓN DE CÓDIGO

GENERACIÓN DE CÓDIGO GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información

Más detalles

Algoritmos sobre Grafos

Algoritmos sobre Grafos Sexta Sesión 27 de febrero de 2010 Contenido Deniciones 1 Deniciones 2 3 4 Deniciones sobre Grafos Par de una lista de nodos y una lista de enlaces, denidos a su vez como pares del conjunto de nodos.

Más detalles

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

a < b y se lee a es menor que b (desigualdad estricta) a > b y se lee a es mayor que b (desigualdad estricta) Desigualdades Dadas dos rectas que se cortan, llamadas ejes (rectangulares si son perpendiculares, y oblicuos en caso contrario), un punto puede situarse conociendo las distancias del mismo a los ejes,

Más detalles

Primer Parcial de Programación 3 (1/10/2009)

Primer Parcial de Programación 3 (1/10/2009) Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión

Más detalles

Grupos. Subgrupos. Teorema de Lagrange. Operaciones.

Grupos. Subgrupos. Teorema de Lagrange. Operaciones. 1 Tema 1.-. Grupos. Subgrupos. Teorema de Lagrange. Operaciones. 1.1. Primeras definiciones Definición 1.1.1. Una operación binaria en un conjunto A es una aplicación α : A A A. En un lenguaje más coloquial

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción

Más detalles

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Estructura de datos Tema 6: Tablas de dispersión (hashing) Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

9.1 Primeras definiciones

9.1 Primeras definiciones Tema 9- Grupos Subgrupos Teorema de Lagrange Operaciones 91 Primeras definiciones Definición 911 Una operación binaria en un conjunto A es una aplicación α : A A A En un lenguaje más coloquial una operación

Más detalles

ALGORITMICA Y PROGRAMACION POR OBJETOS I

ALGORITMICA Y PROGRAMACION POR OBJETOS I ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 2 Definiendo situaciones y manejando casos Marcela Hernández Hoyos Qué vamos a aprender en este nivel: Diferencia entre clase y objeto Modelar características

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

Proyecto Unico Interpretador de SetCalc

Proyecto Unico Interpretador de SetCalc Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2008 Proyecto Unico Interpretador de SetCalc A continuación se describe

Más detalles

Definición de vectores

Definición de vectores Definición de vectores Un vector es todo segmento de recta dirigido en el espacio. Cada vector posee unas características que son: Origen: O también denominado Punto de aplicación. Es el punto exacto sobre

Más detalles

Naturaleza binaria. Conversión decimal a binario

Naturaleza binaria. Conversión decimal a binario Naturaleza binaria En los circuitos digitales sólo hay 2 voltajes. Esto significa que al utilizar 2 estados lógicos se puede asociar cada uno con un nivel de tensión, así se puede codificar cualquier número,

Más detalles

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación

Más detalles

Los números racionales

Los números racionales Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones

Más detalles

CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo. La estructura sería:

CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo. La estructura sería: CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo La estructura sería: typedef struct s_cola ELEM elementos[max]; int primero,ultimo; STRUCTCOLA,*COLA;

Más detalles

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos: UNIDAD 8 Presentaciones Reunión. (ITE. Banco de imágenes) as presentaciones son documentos formados por una sucesión de páginas, llamadas diapositivas, que transmiten información estructurada de manera

Más detalles

MÓDULO 2. LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO SIMPLE

MÓDULO 2. LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO SIMPLE MÓDULO 2. LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO SIMPLE Índice de contenidos: 1. Ley Financiera de capitalización a interés vencido. 1.1. Equivalencia de capitales. 1.2. Tipos de interés equivalentes.

Más detalles

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario

Más detalles