Zasada działania metody pop

Zasada działania metody pop
L9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 34
0

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

Kopiuj
  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.

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
4
Kopiuj
@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.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
4

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.