Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grupo: 3EV36.
15 – Abril – 2021.
Concepto de pila.
Para el manejo de los datos se cuenta con dos operaciones básicas: apilar
(push), que coloca un objeto en la pila, y su operación inversa, retirar (o
desapilar, pop), que retira el último elemento apilado.
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar
un plato sobre una pila de platos, y una operación retirar a retirarlo.
Pila=Estructura lineal manejada siguiendo una política LIFO: Last In First Out.
➤ Operaciones de manipulación:
➤ Homogénea: Todos los elementos son del mismo tipo. Pueden ser de
cualquier tipo: simple o compuesto.
Arreglos
La forma de almacenar los elementos de un arreglo es apartando una serie de
direcciones de memoria donde podamos meter todos y cada uno de los
elementos, uno al lado del otro, identificándolos con un índice ii que va
desde 00 hasta n−1n-1, donde nn es el número de elementos dentro de la
colección. De esto es que decimos cosas como "el ii-ésimo elemento de un
arreglo" o "the ii-th element of an array" en inglés. Para visualizar mejor la
estructura de un arreglo
Cuando un arreglo dinámico es creado por primera vez, junto con la asignación
de las direcciones de memoria necesaria para almacenar los primeros
elementos, se apartan direcciones adicionales. Lo anterior permite que en el
momento que un nuevo elemento se quiera insertar existan espacios contiguos
al último elemento en haber sido agregado y de esa manera la operación
mantenga una complejidad Θ(1)Θ(1). Cuando no hay más espacios adicionales,
entonces TODO el arreglo es copiado a una nueva ubicación de memoria junto
con más espacios adicionales y esta operación tiene complejidad Θ(n)Θ(n)
Simplemente Enlazadas
Cada nodo (elemento) contiene un único enlace que conecta ese nodo al nodo
siguiente o nodo sucesor. La lista es eficiente en recorridos directos (“adelante”)
Doblemente enlazadas
Cada nodo contiene dos enlaces, uno a su nodo predecesor y el otro a su nodo
sucesor. La lista es eficiente tanto como en recorrido directo (“adelante”) como
en recorrido inverso (“atras”).
Una lista enlazada simple necesita una clase con varios campos, los campos que
contienen los datos necesarios (por ejemplo nombre y teléfono) y otro campo
que contiene un puntero a la propia a la misma clase. Este puntero se usa para
saber dónde está el siguiente nodo de la lista, para saber la posición en
memoria del siguiente elemento