Stos i kolejka

Anonim

Zarówno stos, jak i kolejka są definiowane przez sekwencyjny zbiór obiektów zorganizowanych w określonej kolejności w strukturze danych na podstawie niektórych rzeczywistych odpowiedników. Obie są liniowymi strukturami danych służącymi do efektywnego przechowywania i pobierania elementów danych, z wyjątkiem zasady działania. Stos to uporządkowana lista elementów, w której wszystkie insercje i usunięcia są wykonywane na tym samym końcu, podczas gdy kolejka jest dokładnie przeciwna do stosu, który jest otwarty na obu końcach, co oznacza, że ​​jeden koniec jest używany do wstawiania danych, a drugi do usunięcia. dane. Główną różnicą między nimi jest ich mechanizm pracy.

Co to jest stos?

Stos to liniowa struktura danych używana do organizowania danych w określony sposób, aby można było z niego efektywnie korzystać. Maszyny wymagają wskazówek, aby wykonywać zadania proste i skomplikowane w postaci poleceń. Podobnie dane mogą być zbudowane na wiele różnych sposobów, a jedną z najbardziej wydajnych struktur danych są stosy. Jest to abstrakcyjna struktura danych, która przypomina fizyczny stos, w którym obiekty są zorganizowane w określonej kolejności, w szczególności w oparciu o mechanizm "ostatni w pierwszym wylogowaniu" (LIFO), co oznacza, że ​​ostatni dodany element ma być dostępny jako pierwszy i odwrotnie.. Najczęstszym zastosowaniem struktury danych stosu jest wycofanie lub algorytm wyszukiwania Głębokość pierwszy.

Co to jest kolejka?

Kolejka jest również liniową strukturą danych, nieco podobną do struktury danych stosu, z wyjątkiem tego, że jest otwarta na obu końcach. Jest to sekwencyjny zbiór obiektów przypominających kolejkę ludzi. W przeciwieństwie do stosów, opiera się na zasadzie pierwsze weszło-pierwsze wyszło (FIFO), co oznacza, że ​​najwcześniejszy dodany element można uzyskać w pierwszej kolejności i na odwrót. W kolejce jeden koniec służy do wstawiania elementów, a drugi do usuwania elementów. Podobnie jak linia ludzi, nowe jednostki są umieszczane z tyłu, a już obsługiwane jednostki są usuwane z przodu. W kolejce dozwolone są dwie operacje: kolejkowanie i usuwanie. Kolejność odnosi się do dodawania przedmiotów z tyłu, a kasowanie oznacza usuwanie przedmiotów z przodu.

Różnica między stosem a kolejką

Znaczenie stosu i kolejki

Stos to podstawowa struktura danych, abstrakcyjny typ danych reprezentowany przez liniową strukturę przypominającą fizyczny stos, w którym obiekt można dodać w dowolnym momencie, ale można go usunąć, dodając go jako ostatni. W prostych słowach wstawianie i usuwanie obiektów w strukturze danych stosu odbywa się na jednym końcu, który jest wierzchołkiem stosu. Kolejka jest nieco podobna do stosów, z wyjątkiem tego, że jest otwarta na obu końcach - jeden koniec do wstawienia obiektu, a drugi do usunięcia obiektu, co oznacza, że ​​najpierw można uzyskać dostęp do obiektów, które są przechowywane.

Zasada działania w stosie i kolejce

Zarówno stos, jak i kolejka są nieprostymi abstrakcyjnymi typami danych w strukturze danych służącej jako zbiór obiektów, w których elementy są przechowywane w określonej kolejności. Stos to kontener obiektów, w którym elementy są przechowywane i usuwane w oparciu o zasadę działania "ostatni w pierwszym wylogowaniu" (LIFO), co oznacza, że ​​obiekty mogą być przechowywane i odtwarzane w tym samym czasie. Z drugiej strony, kolejka to zbiór obiektów, w których elementy są przechowywane i usuwane zgodnie z zasadą pierwsze weszło-pierwsze wyszło (FIFO).

Struktura stosu i kolejki

Stos nazw odnosi się do analogii struktury, w której elementy są umieszczane jeden na drugim jak stos jak paczka herbatników. Jeden koniec służy do umieszczania i usuwania obiektów ze stosu, dzięki czemu można łatwo wybrać obiekt od góry, jednocześnie utrudniając dostęp do ostatniego obiektu, który wymaga usunięcia wielu elementów jeden po drugim, zaczynając od góry. Kolejka jest przeciwieństwem stosów, co oznacza, że ​​nowe przedmioty są umieszczane z tyłu i usuwane z przodu, tak jak książka.

Operacje

Istnieją dwie podstawowe operacje, które można wykonać na stosach: push, który zasadniczo dodaje element do stosu, a jeśli stos jest pełny, to jest to warunek przepełnienia i pop, który usunął ostatni element ze stosu i pusty stos, odnosi się do warunku niedopełnienia. Istnieje dodatkowa operacja podglądu powiązana ze stosami, która umożliwia dostęp do elementu na górze bez modyfikowania stosu. Z kolejką wiążą się dwie podstawowe zasady: kolejkowanie, czyli dodawanie obiektów do tyłu i usuwanie, które odnosi się do usuwania przedmiotów z przodu.

Aplikacje stosu i kolejki

Jednym z najbardziej podstawowych zastosowań struktury danych stosu jest algorytm wyszukiwania Głębokość pierwszy, który opiera się na idei backtrackingu używanej głównie do przeszukiwania wykresu lub struktury danych drzewa. Może być również używany do kompilatora / systemu operacyjnego do przetwarzania wywołań funkcji lub do implementacji funkcji rekursywnych. Najczęstszym zastosowaniem struktury danych kolejki jest planowanie procesora lub planowanie dysku lub badanie operacji. Prawdziwym przykładem struktury danych kolejek jest kolejka ludzi, w której osoba stojąca jako pierwsza w linii ma być obsługiwana jako pierwsza.

Stack vs. Queue: Tabela porównawcza

Podsumowanie Stack vs Queue

Zarówno stos, jak i kolejka to nieproste abstrakcyjne struktury danych zdefiniowane jako zbiór obiektów zorganizowanych w określonej kolejności na komputerze, ale z różnymi zasadami działania. Chociaż oba dotyczą organizacji i przechowywania danych, robią to bardzo różnie.Stack jest podstawową strukturą danych opartą na zasadzie LIFO, zwanej także last-in-first out, czyli pozycja dodana jako ostatnia ma być dostępna jako pierwsza lub FILO oznacza, że ​​pierwszy element ma być dostępny jako ostatni. Wręcz przeciwnie, kolejka jest oparta na zasadzie FIFI (first-in-first-out), co oznacza, że ​​najpierw należy uzyskać dostęp do najwcześniejszej pozycji.