Zasada działania metody pop

0

Witam.
Mam problem ze zrozumieniem działania tego fragmentu kodu:

  def push(number)
    @stack.push(number.to_f)
  end

  def plus
    @stack.push(pop + pop)
  end

  def minus
    temp = pop
    @stack.push(pop - temp)
  end

  def pop
    value = @stack.pop
    fail 'stack is empty' if value.nil?
    value
  end

Z **ruby-doc ** wiem, że metoda pop usuwa ostatni element z tablicy. A więc mając tablicę np. [3, 8] prosiłbym o wyjaśnienie metody minus. Ja to rozumiem ogólnie w ten sposób, że wartość temp = 8 i zostaje jednocześnie usunięty ten element z tablicy. wywołując push mam 3 - 8 lecz wiem, że jest to błędne rozumowanie.
Z góry dzięki za pomoc.

4
@stack = [3, 8]
temp = @stack.pop # temp = 8, @stack = [3]
temp2 = @stack.pop - temp # temp2 = 3 - 8, @stack = []
@stack.push(temp2) # @stack = [-5]

Ściąga 2 elementy i wrzuca ich różnicę, nic więcej nic mniej.

4

To pewien fragment dla ONP.
Pobieramy dwa elementy z wierzchołka stosu po czym wrzucamy na stos ich różnicę (dla minus).

1 użytkowników online, w tym zalogowanych: 0, gości: 1