RECURSIVIDAD
La
recursividad (recursión) es aquella propiedad que posee un método por la
cual puede llamarse a sí mismo. Aunque se puede utilizar la recursividad como
una alternativa a la iteración, una solución recursiva es, normalmente, menos
eficiente en términos de tiempo de computadora que una solución iterativa,
debido a las operaciones auxiliares que llevan consigo las invocaciones
suplementarias a los métodos; sin embargo, en muchas circunstancias, el uso de
la recursión permite a los programadores especificar soluciones naturales,
sencillas, que serían, en caso contrario, difíciles de resolver. Por esta
causa, la recursión es una herramienta poderosa e importante en la resolución
de problemas y en la programación. Diversas técnicas algorítmicas utilizan la
recursión, como los algoritmos divide y vence y los algoritmos de vuelta
atrás.
ÁRBOLES
Intuitivamente, el concepto
de árbol implica una estructura en la que los datos se organizan de modo que
los elementos de información están relacionados entre sí a través de ramas. El
árbol genealógico es el ejemplo típico más representativo del concepto de árbol
general.
Un árbol consta de un
conjunto finito de elementos, denominados nodos y de un conjunto finito
de líneas dirigidas, denominadas ramas, que conectan los nodos. El
número de ramas asociado con un nodo es el grado del nodo.
Un árbol es un conjunto de
uno o más nodos tales que:
1.
Hay un nodo diseñado especialmente llamado raíz.
2.
Los nodos restantes se dividen en n ≥ 0 conjuntos disjuntos, T1 ... Tn, tal que
cada uno de estos conjuntos es un árbol. A T1 ... Tn se les denomina subárboles
del raíz.
Si
un árbol no está vacío, entonces el primer nodo se llama raíz.
Además
del nodo raíz, existen muchos términos utilizados en la descripción de los
atributos de un árbol. En la Figura 13.3, el nodo A es el raíz. Utilizando el
concepto de árboles genealógicos, un nodo puede ser considerado como padre si
tiene nodos sucesores.
Estos
nodos sucesores se llaman hijos. Por ejemplo, el nodo B es el padre de
los hijos E y F. El padre de H es el nodo D. Un árbol puede representar
diversas generaciones en la familia. Los hijos de un nodo y los hijos de estos
hijos se llaman descendientes, y el padre y los abuelos de un nodo son
sus ascendientes. Por ejemplo, los nodos E, F, I y J son descendientes
de B. Cada nodo no raíz tiene un único padre y cada padre tiene cero o más
nodos hijos. Dos o más nodos con el mismo padre se llaman hermanos. Un
nodo sin hijos, tal como E, I, J, G y H se llama nodo hoja.
El
nivel de un nodo es su distancia al nodo raíz. La raíz tiene una distancia
cero de sí misma, por ello se dice que está en el nivel 0. Los hijos del nodo
raíz están en el nivel 1, sus hijos están en el nivel 2, y así sucesivamente.
Una cosa importante que se aprecia entre los niveles de nodos es la relación
entre niveles y hermanos. Los hermanos están siempre al mismo nivel,
pero no todos los nodos de un mismo nivel son necesariamente hermanos.
Los
árboles se utilizan para representar fórmulas algebraicas, para organizar
objetos en orden de tal forma que las búsquedas sean muy eficientes y en
aplicaciones diversas tales como inteligencia artificial o algoritmos de
cifrado. Casi todos los sistemas operativos almacenan sus archivos en árboles o
estructuras similares a árboles. Además de las aplicaciones citadas, los
árboles se utilizan en diseño de compiladores, procesado de texto y algoritmos
de búsqueda.
GRAFOS
Un
grafo es un conjunto de puntos (una estructura de datos) y un conjunto de
líneas, cada una de las cuales une un punto a otro. Los puntos se llaman nodos
o vértices y las líneas se llaman aristas o arcos. Se representa con el par G = (V, A).
Un
arco o arista representa una relación entre dos nodos, se representa por (u, v)
siendo u, v el par de nodos.
§ Lazo:
arista que une a un nodo(vértice) consigo mismo.
§ camino:
secuencia de uno o mas aristas que conectan dos nodos.
§ La
longitud de un camino es el número de aristas que comprende.
§ Se
dice que dos vértices son adyacentes si hay una arista que los une.
Un
grafo permite modelar relaciones arbitrarias entre objetos. Un grafo G = (V,A)
es un par formado por un conjunto de vértices o nodos, V, y un conjunto de
arcos o aristas, A.
Cada
arco es el par (u,w), siendo u, w dos vértices relacionados.
0 comentarios:
Publicar un comentario