Dynamic6. Дан указатель \(P_1\) на вершину стека, содержащего не менее десяти элементов. Извлечь из стека первые девять элементов и вывести их значения. Вывести также адрес новой вершины стека. После извлечения элементов из стека освобождать память, которую они занимали.

Решение на Python 3:

import random

N = random.randrange(10,15)
stack = []
for i in range(N):
D = random.randrange(-10,10)
stack.append(D)
print("Stack: ", stack)
print("Number of stack items: ", len(stack))
print("Last item: ", stack[-1])
print("id of last item (P1): ", id(stack[-1]))

print()
print("Retrieving 9 items:")
for i in range(9):
try:
print(i+1,". Last item: ", stack[-1])
stack.pop()
except:
print("Retrieving error")

print()
print("Stack after retrieving the item: ", stack)
print("Number of stack items: ", len(stack))