Linked list implementacja stosu

zamiast używać tablicy, możemy użyć linked list do implementacji stosu. Lista powiązana przydziela pamięć dynamicznie. Jednak złożoność czasowa w obu scenariuszach jest taka sama dla wszystkich operacji tj. push, pop i peek.

w linked list implementacja stosu, węzły są utrzymywane w pamięci non-contiguously. Każdy węzeł zawiera wskaźnik do jego bezpośredniego następcy w stosie. Mówi się, że stos jest przepełniony, jeśli przestrzeń pozostawiona w stosie pamięci nie wystarcza do utworzenia węzła.

stos implementacji DS Linked list

najwyższy węzeł w stosie zawsze zawiera null w polu adresu. Omówmy sposób, w jaki każda operacja jest wykonywana w linked list implementacji stosu.

dodawanie węzła do stosu (operacja Push)

dodawanie węzła do stosu jest określane jako operacja push. Wypychanie elementu do stosu w implementacji list połączonych różni się od implementacji tablic. Aby wcisnąć element na stos, należy wykonać następujące kroki.

  1. najpierw Utwórz węzeł i przydziel mu pamięć.
  2. jeżeli lista jest pusta, wtedy element ma zostać wypchnięty jako węzeł początkowy listy. Obejmuje to przypisanie wartości do części danych węzła i przypisanie null do części adresowej węzła.
  3. jeśli na liście są już jakieś węzły, to musimy dodać nowy element na początku listy (aby nie naruszać właściwości stosu). W tym celu Przypisz adres elementu startowego do pola adresu nowego węzła i utwórz nowy węzeł, węzeł początkowy listy.
  4. złożoność czasowa: o(1)

    DS Linked list implementation stack

    implementacja C :

    usuwanie węzła ze stosu (operacja POP)

    usuwanie węzła z góry stosu jest określane jako operacja pop. Usunięcie węzła z listy powiązanej implementacja stosu różni się od implementacji tablicy. Aby usunąć element ze stosu, musimy wykonać następujące kroki :

    1. Sprawdź warunek underflow: warunek underflow występuje, gdy próbujemy wyskoczyć z już pustego stosu. Stos będzie pusty, jeśli wskaźnik head na liście wskazuje na null.
    2. Dostosuj wskaźnik head odpowiednio: w stosie elementy są wyskakiwane tylko z jednego końca, dlatego wartość zapisana w wskaźniku head musi zostać usunięta, a węzeł musi zostać uwolniony. Następny węzeł węzła głównego staje się węzłem głównym.

    Złożoność Czasowa : O (N)

    C implementacja

    wyświetlanie węzłów (trawersowanie)

    wyświetlanie wszystkich węzłów stosu wymaga trawersowania wszystkich węzłów połączonej listy zorganizowanej w formie stosu. W tym celu musimy wykonać następujące kroki.

    1. skopiuj wskaźnik head do wskaźnika tymczasowego.
    2. przesuń wskaźnik tymczasowy przez wszystkie węzły listy i wydrukuj pole wartości dołączone do każdego węzła.

    Złożoność Czasowa : O (N)

    C implementacja

    program sterowany Menu w C implementujący wszystkie operacje stosu za pomocą listy połączonej :

You might also like

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.