-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPila.py
66 lines (57 loc) · 1.72 KB
/
Pila.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class Pila:
def __init__(self, size):
self.lista = []
self.tope = 0
self.size = size
# Si hay elementos en la pila o sea en la lista
def empty(self):
if self.tope == 0:
return True
else:
return False
# Agregar datos a la pila
def push(self, dato):
if self.tope < self.size:
self.lista += [dato]
self.tope += 1
else:
self.size += 5
self.lista += [dato]
self.tope += 1
# Eliminar datos
def pop(self):
if self.empty():
print("La pila está vacía")
else:
self.tope -= 1
self.lista = [self.lista[x] for x in range(self.tope)]
# Mostrar pila
def show(self):
i = self.tope - 1
while i > -1:
print(f"[{i}] => {self.lista[i]}")
i -= 1
# Mostrando la cima de la pila
def top(self):
return self.lista[-1]
if __name__ == "__main__":
opcion = 0
pila = Pila(5)
while opcion != 6:
print("--- Pilas ---\n 1. Agregar dato\n 2. Eliminar\n 3. ¿Está vacía a pila?\n 4. Mostrar pila\n 5. Mostrar cima\n 6. Salir")
opcion = int(input("Ingrese su opción "))
if opcion == 1:
dato = int(input("Ingresa un número "))
pila.push(dato)
elif opcion == 2:
pila.pop()
elif opcion == 3:
print("SI" if pila.empty() else "NO")
elif opcion == 4:
pila.show()
elif opcion == 5:
print(pila.top())
elif opcion == 6:
print("\n--- Sesión culminada ---")
else:
print("Ingresaste una opción errónea, vuelve a intentarlo.")