Przetłumacz zdania ( stos )

0

Przetłumacz następujące zdania, które mają zastosowanie w strukturze stosów ( nie koniecznie prawdziwe ).

a) ~empty(s) => push(pop(s),e)=pop(push(s,e))

Jeżeli stos nie jest pusty ( znajdują się elementy w zbiorze S ), wtedy odłożony na stos, wcześniej zdjęty element jest równo ściągniętemu ze stosu elementowi wcześniej na niego odłożonemu.

b) ~empty(s) => push(pop(s), top(s))=pop(push(s,top(s)))

Jeżeli stos nie jest pusty ( znajdują się elementy w zbiorze S ), wtedy odłożony na stos element, wcześniej zdjęty z jego szczytu, jest równy elementowi zdjętemu, który wcześniej został odłożony na szczyt.

Dobrze?

0

co, Twoim zdaniem, zwracają funkcje pop i push oraz jaki jest pierwszy argument funkcji push?

0

Pierwszym argumentem funkcji push jest element zdjęty ze stosu?? Push - odkładamy na stos, Pop - zdejmujemy ze stosu obiekt.

0
  1. moje pytanie dotyczyło ogólnie tego czy rozumiesz co funkcja push przyjmuje jako pierwszy argument, a nie co przyjmuje w jej pierwszym wystąpieniu, bo ogólnie dajesz tam dwie rzeczy i jedna z nich jest pozbawiona sensu... ponawiam pytanie
  2. wiem do czego służą te funkcje, pytałem co one w/g Ciebie zwracają... ponawiam pytanie
0

Funkcja push zwraca wierzcholek stosu, Funkcja pop dane z wierzcholka stosu i zwraca je Czyli push stos = push(liczba,stos)

0

dobra, nie chce mi się Cię naprowadzać...

tu

józef92 napisał(a)

push(pop(s),e)

oraz tu tu

józef92 napisał(a)

push(pop(s), top(s))

funkcja push przyjmuje dwa obiekty jako argumenty a pierwszym powinien być stos...

poza tym jest u Ciebie kolejność jest dokładnie odwrotna niż twierdzisz:

józef92 napisał(a)

Czyli push stos = push(liczba,stos)

józef92 napisał(a)

Funkcja push zwraca wierzcholek stosu

Twoje przykłady mają sens, jeżeli push zwracałoby stos, a nie jego element

przeanalizuj to sobie na spokojnie...

0

Wiec teraz powoli. Moim skromnym zdaniem funkcja push przyjmuje dwa argumenty: CO oraz GDZIE. Wiadomo, że stos opiera się na LIFO czyli to co ostatnie weszło, pierwsze wyjdzie.

push(pop(s),e) = odłóż element e na stos
push(pop(s), top(s)) = odłóż wartości znajdujące się na szczycie stos, na stos.

pop(push(s,e)) = zdejmij ze stosu element, znajdujący się na stosie;
pop(push(s,top(s)) = zdejmij element znajdujący się na szczycie stosu.

Tak obecnie rozumiem te zdania.

0

push(pop(s),e) = najpierw zdejmij ze stosu S wartość ze szczytu a potem połóż na szczycie tego stosu wartość E
push(pop(s), top(s)) = najpierw zdejmij ze stosu S wartość ze szczytu, następnie połóż na tym stosie wartość ze szczytu (w praktyce takie coś usunie nam szczyt stosu, a drugą wartość zduplikuje)
pop(push(s,e)) = najpierw połóż na szczycie stosu S wartość E, a potem zdejmij wartość ze szczytu stosu
pop(push(s,top(s)) = najpierw połóż na stosie S wartość ze szczytu tego stosu (czyli zduplikuj wierzchołek stosu) a następnie zdejmij wartość ze szczytu stosu.

Zakładając że mamy mniej wiecej takie deklaracje:
Stos push(Stos s, Element e);
Stos pop(Stos s);
Element top(Stos s);

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