Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LA COLONIA-TUREN-SANTA ROSALÍA.
CI: 27509393
Sección: 231
15/05/2020
Inicialización o creación.
1
ENDER J. NABEA ALVAREZ
0
Eliminar elementos de una lista.
1
ENDER J. NABEA ALVAREZ
1
Recorrer una lista enlazada (visitar cada nodo de la lista).
La operación de recorrer e imprimir los elementos de una lista se resume
en l el siguiente algoritmo:
Es una lista lineal en la que cada nodo tiene dos enlaces, uno al nodo siguiente,
y otro al anterior.
1
ENDER J. NABEA ALVAREZ
2
Las listas doblemente enlazadas no necesitan un nodo especial para acceder a
ellas, pueden recorrerse en ambos sentidos a partir de cualquier nodo, esto es
porque a partir de cualquier nodo, siempre es posible alcanzar cualquier nodo
de la lista, hasta que se llega a uno de los extremos.
El nodo típico es el mismo que para construir las listas que hemos visto, salvo
que tienen otro puntero al nodo anterior:
1
ENDER J. NABEA ALVAREZ
3
ya que no se puede ejecutar indefinidamente. La recursividad es una
herramienta muy útil en aplicaciones de cálculo y en problemas complejos de
naturaleza recursiva. Puede ser utilizada como una alternativa a la estructura
repetitiva.
Recursividad
1
ENDER J. NABEA ALVAREZ
4
Habrá un caso (o varios ) tan
simple que pueda resolverse
directamente sin necesidad de
hacer otra llamada recursiva.
Ámbito de Aplicación
Se utiliza para realizar una llamada a una función desde ella misma, de allí su
nombre. El ejemplo que se puede representar más usado por su fácil
compresión es los cálculos de números factoriales de 0.
General
Problemas cuya solución se puede hallar solucionando el mismo
problema, pero con un caso de menor tamaño.
1
ENDER J. NABEA ALVAREZ
5
Método de las tres preguntas
• La pregunta Caso-Base: ¿Existe una salida no recursiva o
Caso base del subalgoritmo? Además, ¿el subalgoritmo
Funciona correctamente para ella?
• La pregunta Más-pequeño: ¿Cada llamada recursiva se
1
ENDER J. NABEA ALVAREZ
6
Refiere a un caso más pequeño del problema original?
• La pregunta Caso-General: ¿es correcta la solución en
Aquellos casos no base?
1
ENDER J. NABEA ALVAREZ
7
1
ENDER J. NABEA ALVAREZ
8
Ventajas y Desventajas de la Recursividad
1
ENDER J. NABEA ALVAREZ
9
Estructura de Datos
2
ENDER J. NABEA ALVAREZ
0
Pilas
Una pila es una estructura de datos, que permite que los elementos sean
añadidos o eliminados solo por un lado. Las pilas son comunes en la vida real;
se tienen pilas de platos, pila de servilletas, pila de libros, pila de dólares, pila
de periódicos. Etc.
El final donde los elementos son añadidos o eliminados se conoce como ¨tope¨
(top) de la pila. En una pila, los elementos que son añadidos de últimos son los
primeros en ser removidos. De aquí que, las pilas también son conocidas como
listas Ultimo en entrar, Primero en salir (LIFO siglas en Ingles).
2
ENDER J. NABEA ALVAREZ
1
En una pila la operación o de inserción se refiere como `push` y la operación de
eliminación se refiere como `pop`.
Para utilizar el Tipo de Dato Abstracto (TDA) Pila, el mismo nos proveerá de
una serie de procedimientos que nos permitirán acceder o agregar elementos.
Los siguientes son los procedimientos básicos que debe contener una pila:
P_Crear.
P_Vaciar.
P_Vacia.
P_Agregar.
P_Sacar.
2
ENDER J. NABEA ALVAREZ
2
El usuario de una pila utilizara estos procedimientos, sin tener en cuenta como
están implementados por dentro. Lo único que deberá conocer es los
procedimientos y sus parámetros.
1. New (S): crea una nueva pila S. La pila S esta vacia cuando se crea.
2. Push (S, element): pone un elemento en el tope de la pila.
3. Pop (S): Elimina el elemento del tope de la pila.
4. Top (S): Retorna el elemento en el tope de la pila.
5. Isempty(S): Retorna verdadero si es vacia, de lo contrario retorna falso.
Navegador Web:
1. Se almacenan los sitios previamente visitados: cuando el usuario quiere
regresar (presiona el botón de retroceso o regresar), simplemente se
extrae la última dirección (pop) de la pila de sitios visitados.
2. Editores de texto u otras herramientas
Los cambios efectuados se almacenan en una pila
3. El Usuario puede deshacer los cambios mediante la operación “undo” o
deshacer, la cual extrae el estado del texto o cualquier elemento, antes
del último cambio realizado.
Especificaciones de Pila
Aplicaciones de pilas:
Hay un número de aplicaciones que requieren la pila como estructurad
de datos. Entre ellas tenemos:
Procesamiento de cadenas
Hay muchas aplicaciones de procesamiento de cadenas (string) donde
las pilas son estructuras de Datos vitales. Un ejemplo simple es la
detección de cadenas palíndrome.
2
ENDER J. NABEA ALVAREZ
4
Cuando una función se invoca los parámetros deben estar disponibles
para el programa que invoca. Después de que la ejecución de la función
se completa, el control debe retornar a la sentencia siguiente a la
invocación de esa función
Se sabe que las expresiones entre paréntesis c+d y e–f s evalúan antes
que el resto de los operadores aplicados a los operando.
Así es necesario recordar los resultados de c + d y e – f cuando la
expresión completa se evalúa.
Implementación
Para la implementación de la pila, es necesario que el tipo de dato
contenga una referencia al nodo tope de la pila. Luego, cada nodo
tendrá una referencia al nodo que le siguiente. De esta manera se
formara una cadena con inicio en el nodo tope y que finaliza en el último
elemento de la pila, cuyo nodo no referenciará a ningún elemento.
2
ENDER J. NABEA ALVAREZ
5
Colas
2
ENDER J. NABEA ALVAREZ
6
Una Cola también se denomina una lista “primero en entrar, primero en salir” o
simplemente FIFO (First-In First-Out).
Para utilizar el Tipo de Dato Abstracto (TDA) Pila, el mismo nos proveerá de
una serie de procedimientos que nos permitirán acceder o agregar elementos.
Los siguientes son los procedimientos básicos que debe contener una pila:
C_Crear
2
ENDER J. NABEA ALVAREZ
7
C_Vaciar
C_Vacia
C_Agregar
C_Sacar
Tipos de colas
2
ENDER J. NABEA ALVAREZ
8
Colas circulares (anillos): en las que el último elemento y el
primero están unidos.
Colas de prioridad: En ellas, los elementos se atienden en el
orden indicado por una prioridad asociada a cada uno. Si varios
elementos tienen la misma prioridad, se atenderán de modo
convencional según la posición que ocupen. Hay 2 formas de
implementación:
2
ENDER J. NABEA ALVAREZ
9
Funcionalidades de colas
Cuando los datos se trasmiten a través de redes, una cola es una excelente
estructura de Datos para almacenar los datos y permitir que los elementos de
datos se ordenen.
3
ENDER J. NABEA ALVAREZ
0
Implementación
Para implementar una cola será necesario que la estructura contenga una
referencia al primer nodo de la cola y otra al último nodo. Luego, desde el
primer nodo de la cola, se irán encadenando los demás nodos, hasta el último.
Árbol
Es una estructura no lineal en la que cada nodo puede apuntar a uno o varios
nodos. También se suele dar una definición recursiva: un árbol es una
estructura compuesta por un dato o varios árboles. Estas son simples
características que implican sus funciones más estructuradas. En relación con
otros nodos
3
ENDER J. NABEA ALVAREZ
1
Tipos
Árbol Binario.
Es un árbol con raíz en el que cada nodo tiene como máximo dos hijos
Árbol Binario lleno.
Árbol Binario perfecto
Árbol AVL
Su nombre de las iniciales de los apellidos de sus inventores, Adelson-
Velskii y Landis. Lo dieron a conocer en la publicación de un artículo en
1962: "Analgorithmfortheorganizationof information" ("Un algoritmo para
la organización de la información").
Están siempre equilibrados de tal modo que para todos los nodos, la altura de la
rama izquierda no difiere en más de una unidad de la altura de la rama derecha.
Gracias a esta forma de equilibrio (o balanceo), la complejidad de una
búsqueda en uno de estos árboles se mantiene siempre en orden de
complejidad.
Los árboles tienen otra característica importante: cada nodo sólo puede ser
apuntado por otro nodo, es decir, cada nodo sólo tendrá un padre. Esto hace
que estos árboles estén fuertemente jerarquizados, y es lo que en realidad les
da la apariencia de árboles.
3
ENDER J. NABEA ALVAREZ
2
En cuanto a la posición dentro del árbol:
Otra característica que normalmente tendrán nuestros árboles es que todos los
nodos contengan el mismo número de punteros, es decir, usa la misma
estructura para todos los nodos del árbol. Esto hace que la estructura sea más
sencilla, y por lo tanto también los programas para trabajar con ellos.
Tampoco es necesario que todos los nodos hijos de un nodo concreto existan.
Es decir, que pueden usarse todos, algunos o ninguno de los punteros de cada
nodo.
Un árbol en el que en cada nodo o bien todos o ninguno de los hijos existe, se
llama árbol completo.
En una cosa, los árboles se parecen al resto de las estructuras que hemos
visto: dado un nodo cualquiera de la estructura, podemos considerarlo como
una estructura independiente. Es decir, un nodo cualquiera puede ser
considerado como la raíz de un árbol completo.
Implementacion
Existen otros conceptos que definen las características del árbol, en relación a
su tamaño:
3
ENDER J. NABEA ALVAREZ
3
cada nodo puede apuntar a otros dos es de orden dos, si puede
apuntar a tres será de orden tres, etc.
Grado: el número de hijos que tiene el elemento con más hijos
dentro del árbol. En el árbol del ejemplo, el grado es tres, ya que
tanto 'A' como 'D' tienen tres hijos, y no existen elementos con más
de tres hijos.
Nivel: se define para cada elemento del árbol como la distancia a
la raíz, medida en nodos. El nivel de la raíz es cero y el de sus hijos
uno. Así sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el
nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3.
Altura: la altura de un árbol se define como el nivel del nodo de
mayor nivel. Como cada nodo de un árbol puede considerarse a su
vez como la raíz de un árbol, también podemos hablar de altura de
ramas. El árbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2,
la rama 'G' tiene altura 1, la 'H' cero, etc.
Los árboles de orden dos son bastante especiales Estos árboles se conocen
también como árboles binarios.
3
ENDER J. NABEA ALVAREZ
4
Conclusión
Referencias Bibliográficas
https://es.slideshare.net/angenio2/programacin-3-listas-enlazadas
https://iutpnf.files.wordpress.com/2010/06/listas-enlazadas-guia-bc3a1sica.pdf
http://www.conclase.net/c/edd/?cap=005
http://formacion.desarrollando.net/cursosfiles/formacion/curso_454/deda-03.pdf
https://algoritmica.webcindario.com/unidades/unidad13.pdf
https://www.ecured.cu/index.php?
title=Cola_(Estructura_de_datos)&oldid=1614197»
3
ENDER J. NABEA ALVAREZ
5
https://sites.google.com/site/algoritmicapnfiuptaeb/contenido/periodo-2/unidad-
13-recursividad
https://sites.google.com/site/portafoliosenati/fundamentos-de-programacion/13-
aplicar-recursividad
https://sites.google.com/site/algoritmicapnfiuptaeb/contenido/periodo-2/unidad-
14-introduccion-a-las-estructuras-de-datos-dinamicas-avanzadas-pilas-colas-y-
arboles
http://www.conclase.net/c/edd/?cap=006#inicio
http://www.conclase.net/c/edd/?cap=006#inicio
3
ENDER J. NABEA ALVAREZ
6