<h2>Stos</h2>
<p>Kolejną, podstawową strukturą danych, która znajduje częste zastosowanie, jest stos (ang. stack). Jest to liniowa struktura danych, którą można zaimplementować, bazując tak na tablicy jak i na liście. Mimo tego, że „z zewnątrz” tablica i lista to struktury w miarę do siebie podobne, stos znacznie się od nich różni. Czym?</p>
<p><b>Krótka charakterystyka:</b></p>
<p>Nazwa ‚stos’ nie została nadana przypadkowo. W danym momencie tylko jeden z elementów przechowywanych na stosie jest dostępny – ostatni dodany. Z tego względu mówi się, że stos jest strukturą typu <b>LIFO </b>(Last In First Out). Ostatni dodany staje się pierwszym (gdzieś już to słyszeliśmy ;)) ściąganym ze stosu.</p>
<p><b>Sposoby implementacji:</b></p>
<p>Jeżeli chcemy zaimplementować stos na bazie listy, możemy zrobić to w ten sposób, że częścią składową obiektu stosu jest lista, której pierwszy węzeł wskazuje na ostatnio dodany element na stosie. Należy pamiętać, że wraz z tą implementacją Stos przejmuje praktycznie wszelkie zalety i wady listy. Implementacja ta jest prosta, ale wydajnościowo odpowiada liście. Stos możemy zaimplementować też na bazie tablicy.</p>
<p>Stos możemy wyobrażać sobie w taki sposób:</p>
<img src="/static/img/blog/stack-227x300.png" alt="" class=" postImage" />
<p><b>Podstawowe operacje:</b></p>
<ol>
<li> Umieszczanie elementu na stosie(Push): Wstawiamy element na „szczyt” stosu. </li>
<li> Ściąganie elementu ze stosu(Pop): Usuwamy (i zwracamy) element ze szczytu. <br></li>
</ol>
<h2>Kolejka</h2>
<p>Kolejka(ang. queue) jest bardzo podobna do stosu. Różni się jednak od niego w pewnych detalach.</p>
<p><b>Krótka charakterystyka:</b></p>
<p>Podobnie jak w przypadku stosu, nazwa „Kolejka” doskonale obrazuje działanie tej struktury danych. Pierwszy element, który „stanął” w kolejce, jest pierwszym, który z niej wyjdzie. Natomiast każdy nowy element musi stanąć na jej końcu.Kolejka jest więc nazywana strukturą typu <b>FIFO</b>(First In First Out). </p>
<img src="/static/img/blog/Queue.png" alt="" class=" postImage" />
<p><b>Sposoby implementacji:</b></p>
<p>Kolejkę implementujemy w sposób podobny do stosu. Bazą również może być lista lub tablica.</p>
<p><b>Kolejka priorytetowa:</b></p>
<p>Jest to wariant kolejki, gdzie elementy są wstawiane, według swojego priorytetu. Element o najwyższym priorytecie znajduje się na końcu (czyli najbliżej „wyjścia”) kolejki.</p>