Jak wykonać obsługę stosu (First In, PHP Skrypty


[PHP] Jak wykonać obsługę stosu (First In, Last Out) korzystając z własnej klasy?

0x01 graphic

Chcesz zaimplementować obsługę stosu, gdzie pierwszy położony element zostanie ściągnięty jako ostatni.

0x01 graphic

Stos to podstawowa struktura danych w informatyce. Przypomina ona nieco stos klocków, gdzie klocki można dodawać tylko na samą górę i zdejmować też tylko z samej góry. Aby dostać się do klocka na dole, trzeba zdjąć wszystkie z góry. Stos służy do odkładania (zwykle na chwilę) określonych wartości.

Realizacja stosu nie jest skomplikowana i sprowadza się do użycia funkcji obsługujących tablice. Takie rozwiązanie jest wystarczające do prostych zastosowań, ale znacznie wygodniejsze jest korzystanie z klas i obiektów, jak w poniższym przykładzie.

class stos {

var $tablica;

function dodaj($element) {

$this->tablica[] = $element;

}

function usun() {

return array_pop($this->tablica);

}

function ile() {

return count($this->tablica);

}

function pokaz() {

$ile=$this->ile();

for ($i=0;$i<$ile;$i++) echo $this->tablica[$i]."<br>";

}

}

$stos1 = new stos(); echo "<br>Stworzenie stosu";

$stos1->dodaj("Piotr"); echo "<br>Dodano na stos: Piotr";

$stos1->dodaj("Marek"); echo "<br>Dodano na stos: Marek";

$stos1->dodaj("Iwona"); echo "<br>Dodano na stos: Iwona";

$usuniety = $stos1->usun(); echo "<br>Usunięto ze stosu: $usuniety";

$jest= $stos1->ile(); echo "<br>Elementów na stosie: $jest";

$stos1->dodaj("Michał"); echo "<br>Dodano na stos: Michał";

$usuniety = $stos1->usun(); echo "<br>Usunięto ze stosu: $usuniety";

$usuniety = $stos1->usun(); echo "<br>Usunięto ze stosu: $usuniety";

$jest= $stos1->ile(); echo "<br>Elementów na stosie: $jest";

$stos1->dodaj("Katarzyna"); echo "<br>Dodano na stos: Katarzyna";

$stos1->dodaj("Anna"); echo "<br>Dodano na stos: Anna";

$usuniety = $stos1->usun(); echo "<br>Usunięto ze stosu: $usuniety";

$jest= $stos1->ile(); echo "<br>Elementów na stosie: $jest";

echo "<p>";

echo $stos1->pokaz();

Stwórzmy sobie klasę o nazwie stos, która będzie zawierała jedno pole - tablicę o nazwie tablica. Teraz wystarczy stworzyć metody umożliwiające dodanie elementu do stosu dodaj() i zdjęcie elementu ze stosu usun() i zwrócenie go.

Dodałem jeszcze dwie pomocnicze metody - ile() określającą ile elementów mamy aktualnie na stosie i pokaz(), która wypisuje zawartość stosu. Nie są one konieczne, aby stos działał poprawnie.

Funkcja array_pop() pobiera i kasuje ostatni element tablicy. Dodawanie elementu do tablicy nie wymaga nawet stosowania jakichkolwiek funkcji. W zasadzie bez tworzenia klas wszystko też działałoby poprawnie, więc dlaczego upierałem się przy zastosowaniu klasy?

Klasa jest wygodna gdy chcesz mieć kilka niezależnych stosów. Możemy zadeklarować kilka zmiennych typu stos i operować na nich za pomocą metod. Może być wiec stos1, stos2 itd.

To również wygodny sposób na zmianę zachowania poszczególnych metod - w starszych wersjach języka PHP nie ma funkcji array_pop() i trzeba napisać ręczną obsługę zwracania elementu z tablicy. O wiele łatwiej wykonać ją w klasach (modyfikując jedną metodę).

Poniżej kodu znajdziesz przykład wykorzystujący klasę do manipulowania zawartością stosu - bardzo łatwo można dodawać i usuwać elementy ze stosu. W naszym wypadku na stos wędrowały imiona.

Nasza klasa nie ma konstruktora, bo nie był potrzebny. Metoda ile() może przydać się do sprawdzania czy stos nie jest przepełniony, jeżeli zakładasz, iż powinien osiągnąć tylko określoną ilość elementów.



Wyszukiwarka

Podobne podstrony:
jak wykonac sortowanie babelkowealgorytm bubble sort, PHP Skrypty
Jak wstawić do bazy danych kod PHP i potem wykonać go w momencie pobrania z bazy, PHP Skrypty
jak policzyc objetosc plikow w katalogu i podkatalogach, PHP Skrypty
Jak zapisać do pliku zawartość tablicy, PHP Skrypty
jak stworzyc bramke do wysyłania maili, PHP Skrypty
Jak zakładać i kasować tabele w bazie danych, PHP Skrypty
Jak policzyć największy wspólny dzielnik (NWD, PHP Skrypty
jak wykonac sortowanie przez zamiane wymiane wybor algorytm selection sort, PHP Skrypty
jak wykonac sortowanie przez wstawianie algorytm inserion sort, PHP Skrypty
jak wykonac strone z logowaniem do innej strony, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak przerwać wykonywanie pętli (for, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak wygenerować bezpieczne, PHP Skrypty
Jak zrobić stronę dostępną na hasło tylko dla wybranych użytkowników, PHP Skrypty
Jak wyświetlić zawartość katalogu jako linki służące do pobrania plików, PHP Skrypty
Jak pobrać zawartość strony WWW korzystając z biblioteki CURL, PHP Skrypty
Jak uzyskać kolejny numer (id) ostatnio wstawionego rekordu, PHP Skrypty

więcej podobnych podstron