DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
|
|
- Vicenta Miguélez Navarrete
- hace 8 años
- Vistas:
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
Á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 Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
Más detallesPRÁ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 detallesCapí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 detallesTecnó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 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 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 detallesARBOLES 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 detallesARBOLES 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 detallesEn 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 detallesAmpliació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 detallesNIVEL 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 detallesNotas 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 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 detallesEstructuras 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 detallesArboles 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 detallesELO320 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 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 detallesTema 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 detallesClase 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 detallesRegistro (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 Árboles balanceados Los algoritmos en árboles binarios de búsqueda dan buenos resultados en el caso promedio pero el
Más detallesProfesorado 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 detallesCapí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 detallesLaboratorio 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 detallesUn 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 detallesESTRUCTURAS 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 detallesUna 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 detallesEstructuras 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 detallesListas, 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 detallesIng. 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 detallesInstituto 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 detallesEstructuras 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 detallesModulo 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 detallesProgramació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
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 detallesEstructura 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 1 Introducción Los árboles de búsqueda son estructuras de datos que soportan las siguientes operaciones de conjuntos
Más detalles1. 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 detallesIntroducció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 detallesMANUAL 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 detallesExamen 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 detalles7. 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 detallesGRAFOS. 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 detallesSolució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 detallesObjetivos 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 detallesEstructura 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 detallesEstructuras 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 ) 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 detallesEstructuras 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 detallesOperació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 detallesESTRUCTURA 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 detallesPilas 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 detallesARREGLOS 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 detallesQue 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 detalles14. Á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 detallesOrganizació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 detallesEJERCICIOS 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 detallesTema 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 detallesCAPÍ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 detallesRESUMEN 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 detallesANÁ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 detallespersonal.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 detallesContenidos. 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 detallesLa 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 detallesMó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 detallesUNIDAD 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 detallesIntroducció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 detallesINTRODUCCION 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 detallesContenidos. 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 detallesTABLA 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 detallesEl 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 detallesContenidos. 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 detallesEstructuras 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 detallesDivisibilidad 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 detallesMatrices 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 detallesGENERACIÓ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 detallesAlgoritmos 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 detallesa < 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 detallesPrimer 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 detallesGrupos. 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 detallesTema 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 detallesDatos 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 detallesEstructura 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 detallesMateria: 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 detallesClases 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 detalles8. 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 detalles9.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 detallesALGORITMICA 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 detallesCAPÍ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 detallesProyecto 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 detallesDefinició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 detallesNaturaleza 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 detallesUNIVERSIDAD 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 detallesLos 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 detallesCI2126 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 detallesPresentaciones. 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 detallesMÓ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 detallesContenido 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