Stos vs kolejka
Stos to uporządkowana lista, na której wstawianie i usuwanie elementów listy może odbywać się tylko na jednym końcu zwanym wierzchołkiem. Z tego powodu stos jest traktowany jako struktura danych Last in First Out (LIFO). Kolejka jest również uporządkowaną listą, w której elementy listy wstawiane są na jednym końcu zwanym tylnym, a usuwanie elementów na drugim końcu, zwanym przodem. Ten mechanizm wstawiania i usuwania sprawia, że kolejka jest strukturą danych First in First out (FIFO).
Co to jest stos?
Jak wspomniano wcześniej, stos to struktura danych, w której elementy są dodawane i usuwane tylko z jednego końca zwanego wierzchołkiem. Stosy pozwalają tylko na dwie podstawowe operacje zwane push i pop. Operacja wypychania dodaje nowy element na górę stosu. Operacja pop usuwa element ze szczytu stosu. Jeśli stos jest już pełny, wykonanie operacji wypychania jest traktowane jako przepełnienie stosu. Jeśli operacja pop jest wykonywana na już pustym stosie, jest to traktowane jako niedomiar stosu. Ze względu na małą liczbę operacji, które można wykonać na stosie, jest on traktowany jako ograniczona struktura danych. Dodatkowo, zgodnie ze sposobem zdefiniowania operacji push i pop, jasne jest, że elementy, które zostały dodane jako ostatnie w stosie, wychodzą ze stosu jako pierwsze. Dlatego stos jest uważany za strukturę danych LIFO.
Co to jest kolejka?
W kolejce elementy są dodawane z tyłu kolejki i usuwane z przodu kolejki. Ponieważ elementy dodane jako pierwsze zostaną najpierw usunięte z kolejki, zachowuje kolejność FIFO. Ze względu na tę kolejność dodawania i usuwania elementów kolejka reprezentuje ideę linii do kasy. Ogólne operacje obsługiwane przez kolejkę to operacje umieszczania w kolejce i usuwania z kolejki. Operacja wstawienia do kolejki spowoduje dodanie elementu z tyłu kolejki, podczas gdy operacja usunięcia kolejki usuwa element z przodu kolejki. Ogólnie rzecz biorąc, kolejki nie mają limitu liczby elementów, które można dodać do kolejki, poza ograniczeniami dotyczącymi pamięci.
Jaka jest różnica między Stack i Queue?
Mimo że zarówno stosy, jak i kolejki są rodzajami uporządkowanych list, mają pewne istotne różnice. W stosach dodawanie lub usuwanie przedmiotów może odbywać się tylko z jednego końca zwanego górą, podczas gdy w kolejkach dodawanie elementów odbywa się z jednego końca zwanego tyłem, a usuwanie elementów z drugiego końca zwanego frontem. W stosie elementy dodane jako ostatnie do stosu zostaną usunięte jako pierwsze ze stosu. Dlatego stos jest uważany za strukturę danych LIFO. W kolejkach elementy, które zostały dodane jako pierwsze, zostaną najpierw usunięte z kolejki. Dlatego kolejka jest traktowana jako struktura danych FIFO.
Powiązany odnośnik:
Różnica między stosem a stertą