Índice
Fundamentación Pág. 3
Introducción Pág. 4
Árbol General Concepto Pág. 5
Terminología y Representación Pág. 6
Árbol Binario Concepto Pág. 8
Terminología Pág. 9
Árbol Binario Completo Pág. 11
Conversión de árbol General a Binario Pág. 12
Recorrido en Árboles Binarios Pág. 13
Conclusión Pág. 15
Anexo Pág. 16
Bibliografía Pág. 17
Planteamiento
¿Qué son los Arboles en la Informática?
Fundamentación
Este trabajo esta realizado con el fin de demostrar la importancia de los árboles en la Informática y como son utilizadas en la misma, también se pretende demostrar a través de la teoría las formas de manipularlas con ejemplos sencillos de números y caracteres.
El fin principal es que a la gente a quienes va dirigido el trabajo pueda llegar a comprender lo que es un árbol en si; ya que será muy útil su manejo a lo largo del año universitario, ya que son muy empleados a nivel de programación de distintas formas.
Introducción
En el siguiente trabajo se hablara acerca de las estructuras no lineales en específico de los Árboles, que se diferencia de las estructuras lineales en la forma de manejo de los datos, las estructuras lineales como su nombre lo indica se lo caracteriza por la linealidad tal así como los arrays que cada elemento iba ordenado secuencialmente uno tras otra en índices continuas en la cual a cada elemento correspondía otro siguiente. En este caso en las estructuras no lineales cada elemento puede tener cualquier siguiente elemento, estas estructuras también son denominadas multienlazadas.
Estaremos también mencionando los tipos de árboles empleados en la informática y las operaciones que se pueden realizar sobre las mismas y los recorridos que pueden llegar a tener tal así como el recorrido en:
PRE Orden
In Orden
Post Orden
Y les estaremos explicando de que manera hacerlo ya que cada uno de ellos conlleva un orden especifico y una manera distinta dependiendo del tipo de árbol que se tenga.
Esperamos que este trabajo el sea útil a los que va dirigido y a los que lo lean.
ÁRBOL
El árbol es una estructura de datos fundamental en la informática, muy utilizada en todos sus campos, por que se adapta a la representación natural de informaciones homogéneas organizadas y de una gran comodidad y rapidez de manipulación.
Otra definición de árbol es como tipo de grafo cíclico, conexo y no dirigido.
Las estructuras tipo árbol se usan principalmente para representar datos con una relación jerárquica entre sus elementos, como son árboles genealógicos, tablas, etc.
La definición de un árbol implica una estructura recursiva. Esto es, la definición del árbol se refiere a otros árboles. Un árbol con ningún nodo es un árbol nulo; no tiene raíz.
Una estructura vacía o un elemento o clave de información (nodo) mas un numero finito de estructuras tipo árbol, disjuntos, llamados subárboles. Si dicho numero de estructuras es inferior o igual a dos, se tiene un árbol binario.
Es por tanto, una estructura no secuencial.
NODO
Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar.
Árboles Generales
Un árbol general (a veces es llamado árbol) se define como un conjunto, finito no vació T de elementos, llamados nodos, tales que:
T contiene un elemento distinguido R, llamado raíz de T.
Los restantes elementos de T forman una colección ordenada de cero o mas árboles disjuntos T1, T2,.., Tm..
La Figura 1.1 muestra un árbol en el que hemos rotulado cada nodo con una letra dentro de un círculo. Esta es una notación típica para dibujar árboles.
Los tres subárboles del raíz A son B, C y D respectivamente, B es la raíz de un árbol con un subárbol E. Este subárbol no tiene subárbol conectado. El árbol C tiene 2 subárboles, F y G.
FIGURA 1.1
TERMINOLOGÍA Y REPRESENTACIÓN DE UN ÁRBOL GENERAL
La representación y terminología de los arboles se realiza con las típicas notaciones de las relaciones familiares en los árboles genealógicos: padre, hijo, hermano, ascendente, descendiente, etc.
RAIZ: Todos loa árboles que no esta vacíos tienen un único nodo raíz. Todos los demás elementos o nodos derivan o descienden de el. El nodo Raíz no tiene Padre es decir no es hijo de ningún elemento
PADRE: X es padre de Y sí y solo sí el nodo X apunta a Y. También se dice que X es antecesor de Y.
HIJO: X es hijo de Y, sí y solo sí el nodo X es apuntado por Y. También se dice que X es descendiente directo de Y.
HERMANO: Dos nodos serán hermanos si son descendientes directos de un mismo nodo.
HOJA. Se le llama hoja o Terminal a aquellos nodos que no tienen ramificaciones (hijos).
NODO. Son los Vértices o elementos del Árbol.
NODO INTERIOR. Es un nodo que no es raíz ni Terminal.
GRADO. Es el número de descendientes directos de un determinado nodo.
GRADO DEL ARBOL 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. Es el máximo número de niveles de todos los nodos del árbol. Equivale al nivel más alto de los nodos más 1.
PESO. Es el número de nodos terminales del árbol
LONGITUD DE CAMINO. Es el número de arcos que deben ser recorridos para llegar desde la raíz al nodo X. Por definición la raíz tiene longitud de camino 1, y sus descendientes directos longitud de camino 2 y así sucesivamente.
FIGURA 1.2 EJEMPLO DE LA TERMINOLOGIA DE UN ARBOL
FIGURA 1.2
RAIZ : A
NIVEL 0 : A
NIVEL 1: B, C, D
NIVEL 2 : E, F, G, H, I, J
NIVEL 3: K, L
ALTURA : 4
PESO : 7
HOJAS : E, F, K, L, H, I, J
OTARA MANERA DE REPRESENTAR EL MISMO ARBOL ES LA SIGUIENTE
Árboles Binarios
Existe un tipo de árbol denominado árbol binario que puede ser implementado fácilmente en una computadora.
Un árbol binario es un conjunto finito de cero o más nodos tales que:
Existe un nodo denominados raíz del árbol
Cada nodo puede tener 0, 1 o 2 subárboles, conocidos como subárbol izquierdo y subárbol derecho
Ejemplos de Árboles Binarios
(a)Expresión de árbol a+b/c;
(b) y (c) Dos árboles diferentes con valores enteros
Terminología de los árboles binarios
Dos árboles se dicen que son similares si tienen la misma estructura, y son equivalentes si son similares y contienen la misma información.
Un árbol binario esta equilibrado si las alturas de los dos subárboles de cada nodo del árbol se diferencias en una unidad como máximo.
altura (subárbol izquierdo) – altura(subárbol derecho)<=1
ÁRBOLES BINARIOS SIMILARES
El procesamiento de árboles equilibrados es más sencillo que los árboles no equilibrados. En la figura 1.4 se muestran 2 árboles binarios de diferentes alturas y en la figura 1.5 árboles equilibrados y sin equilibrar
FIGURA 1.4 FIGURA 1.5
ÁRBOLES BINARIOS DE DIFERENTES ALTURTAS (a) ARBOL EQUILIBRADO
T : Altura = 3 (b) ARBOL NO EQUILIBRADO
T1: Árbol Vacío
T2: Altura = 6
ÁRBOLES BINARIOS COMPLETOS
Un árbol binario se llama completo si todos sus nodos, excepto las hojas, tienen exactamente dos subárboles. Un árbol binario completo, tal que todos los niveles están llenos, se llama árbol binario lleno
Un árbol binario completo puede tener como máximo 2 h -1
Por ultimo se denomina árbol degenerado un árbol en le que todos sus nodos tienen solamente un subárbol, excepto el ultimo.
(a) Árbol Binario lleno de altura
(b) Árbol Binario Completo de altura
3.
Otros Conceptos:
Un árbol binario es un árbol con raíz en el que cada nodo tiene como máximo dos hijos.
Un árbol binario lleno es un árbol en el que cada nodo tiene cero o dos hijos.
Un árbol binario perfecto es un árbol binario lleno en el que todas las hojas (vértices con cero hijos) están a la misma profundidad (distancia desde la raíz, también llamada altura).
A veces un árbol binario perfecto es denominado árbol binario completo. Otros definen un árbol binario completo como un árbol binario lleno en el que todas las hojas están a profundidad n o n-1, para alguna n.
Conversión de un árbol General a Binario
Dado que los árboles binarios son la estructura general en la teoría de árboles, será preciso disponer de algún mecanismo que permita la conversan de un árbol general en un árbol binario.
Los árboles binarios son mas faciales de programar que los árboles genérales. En estos es imprescindible deducir cuantas ramas o caminos se desprenden de un nodo en un momento dado. Por ello, y dado que de los árboles binarios siempre se cuelgan como máximo dos subárboles su programación será más sencilla.
Afortunadamente, existe una técnica para convertir árbol general a binario para ello, debemos seguir los pasos que se describen a continuación:
1.Enlazar el nodo raíz con el camino que conecta el nodo mas a la izquierda (su hijo)
2.Debe eliminarse el vínculo de ese padre con el resto de sus hijos y enlazar los nodos hermanos en una sola línea con el fin de formar un solo nivel
3.Rotar el diagrama resultante aproximadamente 45 grados hacia la izquierda, y así se obtendrá el árbol binario correspondiente.
Ejemplo de conversión de árbol Genera a Binario
ARBOL GENERAL PASO 1
PASO 2 PASO 3 (RESULTADO)
RECORRIDO EN ÁRBOLES BINARIOS
Una de las operaciones mas importantes a realizar en un árbol binario es el recorrido de los mismos, recorrer 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 3 formas diferentes de efectuar el recorrido y todas ellas de naturaleza recursiva, estas son:
RECORRIDO PREORDEN: En el que se procesa el nodo y después se procesan recursivamente sus hijos.
RECORRIDO POSTORDEN: Donde el nodo dado se procesa después de haber procesado recursivamente a sus hijos.
RECORRIDO INORDEN: En este se procesa recursivamente el hijo izquierdo, luego se procesa el nodo actual y finalmente se procesa recursivamente el hijo derecho.
RECORRIDO PREORDEN
VISITAR LA RAIZ
RECORRER EL SUBARBOL IZQUIERDO
RECORRER EL SUBARBOL DERECHO
Recorrido en preorden: consiste en visitar el nodo actual (visitar puede ser simplemente mostrar la clave del nodo por pantalla), y después visitar el subárbol izquierdo y una vez visitado, visitar el subárbol derecho. Es un proceso recursivo por naturaleza.
PREORDEN: A-B-D-E-C-F-G
RECORRIDO POSTORDEN
En este caso se trata primero el subárbol izquierdo, después el derecho y por último el nodo actual.
POSTORDEN: 2, 5, 11, 6, 7, 4, 9, 5 y 2.
RECORRIDO INORDEN
En este caso se trata primero el subárbol izquierdo, después el nodo actual y por último el subárbol derecho. En un AB este recorrido daría los valores de clave ordenados de menor a mayor. En el árbol de la figura el recorrido en inorden sería: 2, 7, 5, 6, 11, 2, 5, 4 y 9.
Conclusión
Entonces podemos decir que el árbol es una estructura de datos fundamental en la informática ya que se utiliza en distintos campos de la misma.
También se podría decir que un árbol binario se define como un conjunto finito de elementos llamados nodos. En estos casos se puede usar terminología de relaciones familiares para descubrir las relaciones entre los nodos de un árbol; y que un árbol puede ser implementado fácilmente en una computadora.
Es bueno hacer énfasis en esto ya que se puede saber mucho sobre lo que tiene que ver con los árboles; entre las cosas que podemos mencionar se encuentra la raíz, los nodos de un árbol y la diferencia entre nodos sucesores y nodos terminales, como se muestran en el contenido del trabajo.
Anexo
Formas de representación
- Mediante un grafo:
Figura 1
Algoritmo:
Recorrido(Arbol, N)
Si N ≠ 0
i ->
Mientras i < N
Imprimir Arbol
i -> i + 1
//Fin del ciclo//
Salir
//Fin de la condición//
Imprimir "Arbol Vacio..."
Salir
Corrida:
Bibliografía
Libro: Estructura de datos y organización de archivos.
Autora: Mary E. S. Loomis.
Pagina web consultadas:
www.google.com
http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/Ejer_AG.htm
http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/Ejer_AB.htm
Fundamentación Pág. 3
Introducción Pág. 4
Árbol General Concepto Pág. 5
Terminología y Representación Pág. 6
Árbol Binario Concepto Pág. 8
Terminología Pág. 9
Árbol Binario Completo Pág. 11
Conversión de árbol General a Binario Pág. 12
Recorrido en Árboles Binarios Pág. 13
Conclusión Pág. 15
Anexo Pág. 16
Bibliografía Pág. 17
Planteamiento
¿Qué son los Arboles en la Informática?
Fundamentación
Este trabajo esta realizado con el fin de demostrar la importancia de los árboles en la Informática y como son utilizadas en la misma, también se pretende demostrar a través de la teoría las formas de manipularlas con ejemplos sencillos de números y caracteres.
El fin principal es que a la gente a quienes va dirigido el trabajo pueda llegar a comprender lo que es un árbol en si; ya que será muy útil su manejo a lo largo del año universitario, ya que son muy empleados a nivel de programación de distintas formas.
Introducción
En el siguiente trabajo se hablara acerca de las estructuras no lineales en específico de los Árboles, que se diferencia de las estructuras lineales en la forma de manejo de los datos, las estructuras lineales como su nombre lo indica se lo caracteriza por la linealidad tal así como los arrays que cada elemento iba ordenado secuencialmente uno tras otra en índices continuas en la cual a cada elemento correspondía otro siguiente. En este caso en las estructuras no lineales cada elemento puede tener cualquier siguiente elemento, estas estructuras también son denominadas multienlazadas.
Estaremos también mencionando los tipos de árboles empleados en la informática y las operaciones que se pueden realizar sobre las mismas y los recorridos que pueden llegar a tener tal así como el recorrido en:
PRE Orden
In Orden
Post Orden
Y les estaremos explicando de que manera hacerlo ya que cada uno de ellos conlleva un orden especifico y una manera distinta dependiendo del tipo de árbol que se tenga.
Esperamos que este trabajo el sea útil a los que va dirigido y a los que lo lean.
ÁRBOL
El árbol es una estructura de datos fundamental en la informática, muy utilizada en todos sus campos, por que se adapta a la representación natural de informaciones homogéneas organizadas y de una gran comodidad y rapidez de manipulación.
Otra definición de árbol es como tipo de grafo cíclico, conexo y no dirigido.
Las estructuras tipo árbol se usan principalmente para representar datos con una relación jerárquica entre sus elementos, como son árboles genealógicos, tablas, etc.
La definición de un árbol implica una estructura recursiva. Esto es, la definición del árbol se refiere a otros árboles. Un árbol con ningún nodo es un árbol nulo; no tiene raíz.
Una estructura vacía o un elemento o clave de información (nodo) mas un numero finito de estructuras tipo árbol, disjuntos, llamados subárboles. Si dicho numero de estructuras es inferior o igual a dos, se tiene un árbol binario.
Es por tanto, una estructura no secuencial.
NODO
Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar.
Árboles Generales
Un árbol general (a veces es llamado árbol) se define como un conjunto, finito no vació T de elementos, llamados nodos, tales que:
T contiene un elemento distinguido R, llamado raíz de T.
Los restantes elementos de T forman una colección ordenada de cero o mas árboles disjuntos T1, T2,.., Tm..
La Figura 1.1 muestra un árbol en el que hemos rotulado cada nodo con una letra dentro de un círculo. Esta es una notación típica para dibujar árboles.
Los tres subárboles del raíz A son B, C y D respectivamente, B es la raíz de un árbol con un subárbol E. Este subárbol no tiene subárbol conectado. El árbol C tiene 2 subárboles, F y G.
FIGURA 1.1
TERMINOLOGÍA Y REPRESENTACIÓN DE UN ÁRBOL GENERAL
La representación y terminología de los arboles se realiza con las típicas notaciones de las relaciones familiares en los árboles genealógicos: padre, hijo, hermano, ascendente, descendiente, etc.
RAIZ: Todos loa árboles que no esta vacíos tienen un único nodo raíz. Todos los demás elementos o nodos derivan o descienden de el. El nodo Raíz no tiene Padre es decir no es hijo de ningún elemento
PADRE: X es padre de Y sí y solo sí el nodo X apunta a Y. También se dice que X es antecesor de Y.
HIJO: X es hijo de Y, sí y solo sí el nodo X es apuntado por Y. También se dice que X es descendiente directo de Y.
HERMANO: Dos nodos serán hermanos si son descendientes directos de un mismo nodo.
HOJA. Se le llama hoja o Terminal a aquellos nodos que no tienen ramificaciones (hijos).
NODO. Son los Vértices o elementos del Árbol.
NODO INTERIOR. Es un nodo que no es raíz ni Terminal.
GRADO. Es el número de descendientes directos de un determinado nodo.
GRADO DEL ARBOL 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. Es el máximo número de niveles de todos los nodos del árbol. Equivale al nivel más alto de los nodos más 1.
PESO. Es el número de nodos terminales del árbol
LONGITUD DE CAMINO. Es el número de arcos que deben ser recorridos para llegar desde la raíz al nodo X. Por definición la raíz tiene longitud de camino 1, y sus descendientes directos longitud de camino 2 y así sucesivamente.
FIGURA 1.2 EJEMPLO DE LA TERMINOLOGIA DE UN ARBOL
FIGURA 1.2
RAIZ : A
NIVEL 0 : A
NIVEL 1: B, C, D
NIVEL 2 : E, F, G, H, I, J
NIVEL 3: K, L
ALTURA : 4
PESO : 7
HOJAS : E, F, K, L, H, I, J
OTARA MANERA DE REPRESENTAR EL MISMO ARBOL ES LA SIGUIENTE
Árboles Binarios
Existe un tipo de árbol denominado árbol binario que puede ser implementado fácilmente en una computadora.
Un árbol binario es un conjunto finito de cero o más nodos tales que:
Existe un nodo denominados raíz del árbol
Cada nodo puede tener 0, 1 o 2 subárboles, conocidos como subárbol izquierdo y subárbol derecho
Ejemplos de Árboles Binarios
(a)Expresión de árbol a+b/c;
(b) y (c) Dos árboles diferentes con valores enteros
Terminología de los árboles binarios
Dos árboles se dicen que son similares si tienen la misma estructura, y son equivalentes si son similares y contienen la misma información.
Un árbol binario esta equilibrado si las alturas de los dos subárboles de cada nodo del árbol se diferencias en una unidad como máximo.
altura (subárbol izquierdo) – altura(subárbol derecho)<=1
ÁRBOLES BINARIOS SIMILARES
El procesamiento de árboles equilibrados es más sencillo que los árboles no equilibrados. En la figura 1.4 se muestran 2 árboles binarios de diferentes alturas y en la figura 1.5 árboles equilibrados y sin equilibrar
FIGURA 1.4 FIGURA 1.5
ÁRBOLES BINARIOS DE DIFERENTES ALTURTAS (a) ARBOL EQUILIBRADO
T : Altura = 3 (b) ARBOL NO EQUILIBRADO
T1: Árbol Vacío
T2: Altura = 6
ÁRBOLES BINARIOS COMPLETOS
Un árbol binario se llama completo si todos sus nodos, excepto las hojas, tienen exactamente dos subárboles. Un árbol binario completo, tal que todos los niveles están llenos, se llama árbol binario lleno
Un árbol binario completo puede tener como máximo 2 h -1
Por ultimo se denomina árbol degenerado un árbol en le que todos sus nodos tienen solamente un subárbol, excepto el ultimo.
(a) Árbol Binario lleno de altura
(b) Árbol Binario Completo de altura
3.
Otros Conceptos:
Un árbol binario es un árbol con raíz en el que cada nodo tiene como máximo dos hijos.
Un árbol binario lleno es un árbol en el que cada nodo tiene cero o dos hijos.
Un árbol binario perfecto es un árbol binario lleno en el que todas las hojas (vértices con cero hijos) están a la misma profundidad (distancia desde la raíz, también llamada altura).
A veces un árbol binario perfecto es denominado árbol binario completo. Otros definen un árbol binario completo como un árbol binario lleno en el que todas las hojas están a profundidad n o n-1, para alguna n.
Conversión de un árbol General a Binario
Dado que los árboles binarios son la estructura general en la teoría de árboles, será preciso disponer de algún mecanismo que permita la conversan de un árbol general en un árbol binario.
Los árboles binarios son mas faciales de programar que los árboles genérales. En estos es imprescindible deducir cuantas ramas o caminos se desprenden de un nodo en un momento dado. Por ello, y dado que de los árboles binarios siempre se cuelgan como máximo dos subárboles su programación será más sencilla.
Afortunadamente, existe una técnica para convertir árbol general a binario para ello, debemos seguir los pasos que se describen a continuación:
1.Enlazar el nodo raíz con el camino que conecta el nodo mas a la izquierda (su hijo)
2.Debe eliminarse el vínculo de ese padre con el resto de sus hijos y enlazar los nodos hermanos en una sola línea con el fin de formar un solo nivel
3.Rotar el diagrama resultante aproximadamente 45 grados hacia la izquierda, y así se obtendrá el árbol binario correspondiente.
Ejemplo de conversión de árbol Genera a Binario
ARBOL GENERAL PASO 1
PASO 2 PASO 3 (RESULTADO)
RECORRIDO EN ÁRBOLES BINARIOS
Una de las operaciones mas importantes a realizar en un árbol binario es el recorrido de los mismos, recorrer 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 3 formas diferentes de efectuar el recorrido y todas ellas de naturaleza recursiva, estas son:
RECORRIDO PREORDEN: En el que se procesa el nodo y después se procesan recursivamente sus hijos.
RECORRIDO POSTORDEN: Donde el nodo dado se procesa después de haber procesado recursivamente a sus hijos.
RECORRIDO INORDEN: En este se procesa recursivamente el hijo izquierdo, luego se procesa el nodo actual y finalmente se procesa recursivamente el hijo derecho.
RECORRIDO PREORDEN
VISITAR LA RAIZ
RECORRER EL SUBARBOL IZQUIERDO
RECORRER EL SUBARBOL DERECHO
Recorrido en preorden: consiste en visitar el nodo actual (visitar puede ser simplemente mostrar la clave del nodo por pantalla), y después visitar el subárbol izquierdo y una vez visitado, visitar el subárbol derecho. Es un proceso recursivo por naturaleza.
PREORDEN: A-B-D-E-C-F-G
RECORRIDO POSTORDEN
En este caso se trata primero el subárbol izquierdo, después el derecho y por último el nodo actual.
POSTORDEN: 2, 5, 11, 6, 7, 4, 9, 5 y 2.
RECORRIDO INORDEN
En este caso se trata primero el subárbol izquierdo, después el nodo actual y por último el subárbol derecho. En un AB este recorrido daría los valores de clave ordenados de menor a mayor. En el árbol de la figura el recorrido en inorden sería: 2, 7, 5, 6, 11, 2, 5, 4 y 9.
Conclusión
Entonces podemos decir que el árbol es una estructura de datos fundamental en la informática ya que se utiliza en distintos campos de la misma.
También se podría decir que un árbol binario se define como un conjunto finito de elementos llamados nodos. En estos casos se puede usar terminología de relaciones familiares para descubrir las relaciones entre los nodos de un árbol; y que un árbol puede ser implementado fácilmente en una computadora.
Es bueno hacer énfasis en esto ya que se puede saber mucho sobre lo que tiene que ver con los árboles; entre las cosas que podemos mencionar se encuentra la raíz, los nodos de un árbol y la diferencia entre nodos sucesores y nodos terminales, como se muestran en el contenido del trabajo.
Anexo
Formas de representación
- Mediante un grafo:
Figura 1
Algoritmo:
Recorrido(Arbol, N)
Si N ≠ 0
i ->
Mientras i < N
Imprimir Arbol
i -> i + 1
//Fin del ciclo//
Salir
//Fin de la condición//
Imprimir "Arbol Vacio..."
Salir
Corrida:
Bibliografía
Libro: Estructura de datos y organización de archivos.
Autora: Mary E. S. Loomis.
Pagina web consultadas:
www.google.com
http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/Ejer_AG.htm
http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/Ejer_AB.htm