Pila simple, circular y doble: Push, Pop y estructura
1. Pila simple, Pila circular, Pila doble.
Lenguaje: C++
Acciones a una pila simple, pila circular y pila doble:
Push
Pop
Que es pila simple?
Pila simple significa el primero en entrar es el ultimo en salir. Es una estructura donde
puedes agregar valores y retirarlos. Teniendo solo un apuntador por dentro que ayuda a
conectarse con los demás.
Push- Sirve para ingresar valores y agregarlos a la estructura pila dejando el ultimo valor
que ingreso arriba con el apuntador externo "top".
Algoritmo:
1. inicio manda a llamar push
Vacía =3
Sino =8
2. estado de pila?
3. crear nodo
4. asignación de valor
5. los apuntadores externos "bottom" y "top" apuntan al nuevo nodo
6. el apuntador interno "next" del nuevo nodo apunta a nulo
7. fin
8. crear nodo
9. asignación de valor
2. 10. el apuntador externo "top" asigna al apuntador interno "next" apuntar al nuevo nodo
11. el apuntador externo "top" se actualiza moviéndose al nuevo nodo
12. el apuntador externo "top" asigna al apuntador interno "next" apuntar a nulo
13. fin
Para el algoritmo #7 el diseño de la estructura seria:
Para el algoritmo #13 el diseño de la estructura seria:
Y así se podrán agregar mas valores hasta que el usuario desee:
Se debe de tomar en cuenta que los dibujos solo muestran como se mueven los apuntadores
y los valores no tienen que ver con los movimientos. El primero que entre se queda con el
apuntador externo "bottom" y el ultimo que entre se queda con el apuntador externo "top".
3. Pop- Sirve para sacar el ultimo valor que fue ingresado. Si hay solo un valor en la
estructura, simplemente ya no hay mas valores en la pila. Si se intenta sacar un valor
cuando no hay valores se avisara que no hay valores.
Algoritmo:
1. inicio manda a llamar a pop
Vacía =3
Solo 1 valor =5
Sino =7
2. estado de pila?
3. mensaje "no hay valores en la pila
4. fin
5. se muestra el valor por borrar y los apuntadores externos "top" y "botton" serán nulos
6. fin
7. se muestra el valor por borrar y se inicializa un ciclo para desconectar el último valor y
hacer el penúltimo como ultimo.
8. el apuntador externo "top" asigna al apuntador interno "next" apuntar a nulo
9. fin
Para el algoritmo #6 el diseño de la estructura seria:
4. En el algoritmo #7 el ciclo sirve para recorrer l estructura de abajo hacia arriba y
encontrarse con el penúltimo, y de esa manera poder desconectar el ultimo y actualizar el
apuntador externo "top" hacia abajo con la ayuda del auxiliar.
Para el algoritmo #9 el diseño de la estructura seria:
El penúltimo que este se queda con el apuntador externo "top" y el último valor, antes de
que se hiciera el pop, se desconecta de la estructura.
Que es una pila doble?
Esta se trata de que cada valor tenga doble conexión o dos apuntadores internos "next" y
"prev", que ayudara a este valor a tener comunicación con el valor que entro antes que el y
el valor que entro después que el.
5. Y se lleva acabo de la misma manera en la acción push pero agregando el apuntador interno
"prev", puedes comparar con el código que se ve a continuación:
Cuando se trata del primer valor y la pila esta vacía:
Cuando la pila tiene más de un valor:
Que es pila circular?
Este tipo de pila no tiene mucha diferencia a la pila doble, lo único que tiene de diferente es
que las conexiones en los apuntadores internos "prev" y "next" Nunca apuntan a nulo, solo
cuando no existe ningún valor en la pila, sino es como o veremos a continuación:
Cuando solo tiene un solo valor: