Печать
Категория: Dynamic
Просмотров: 1170

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

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

import random

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

try:
stack.pop()
except:
print("Retrieving error")

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

try:
print("Last item: ", stack[-1])
print("id of last item (P1): ", id(stack[-1]))
except IndexError as e:
print("Last item index error:",e)