apohllo.pl
więcej niż strona domowa...
 

Lekcja 21

Spis treści | Lekcja 20 | Lekcja 22

21. Stosy

Podobnie łatwo można manipulować listami, widząc je jako stosy. Stos, to struktura, która ma dwie funkcjie dostępowe – push i pop. Pierwsza z nich dodaje nowy element na wierzchołek stosu, druga zaś zdejmuje element z wierzchołka stosu, przy czym zdejmowany jest element przybywający na stosie najkrótszy czas, czyli włożony poprzez wykonanie ostatniej funkcji push, pod warunkiem, że nie było między nimi żadnych funkcji pop. Ogólnie rzecz biorąc stos realizuje dostęp LIFO (last in firs out). Jak można się domyślać, w LISP funkcje dostępowe mają identyczne nazwy jak to ma miejsce w ogólnie przyjętej praktyce, czyli push i pop.

21.1 push

Instrukcja ta dodaje nowy element na wierzchołek stosu, przy czym sam stos jest modyfikowany. Ma ona składnię (push element stack).

21.1

(setf stos ())                    =>  nil
(push 'a stos)                    =>  (a)
(push 'b stos)                    =>  (b a)
(push 'c stos)                    =>  (c b a)

21.2 pop

Pop jest instrukcją symetryczną do push – zdejmuje z wierzchołka stosu, to co na nim się znajduje. Instrukcja ta ma postać (pop stack)

21.2

(setf stos '(c b d))              =>  (c b a)
(pop sots)                        =>  c
stos                              =>  (b a)
(pop stos)                        =>  b
stos                              =>  (a)

Spis treści | Lekcja 20 | Lekcja 22

lisp | Opublikowano 08:16 30-11-2010. Ostatnia modyfikacja 09:32 30-11-2010 |
comments powered by Disqus