Jak Wyczyścić Stos

Spisu treści:

Jak Wyczyścić Stos
Jak Wyczyścić Stos

Wideo: Jak Wyczyścić Stos

Wideo: Jak Wyczyścić Stos
Wideo: #20: Jak czyścić broń? Cz. VIII - Jak czyścić optykę 2024, Listopad
Anonim

Jednym z typów struktur danych, które są obecnie szeroko stosowane w programowaniu aplikacji, jest stos. Jego osobliwością jest zasada organizowania elementów, w której ich dodawanie i usuwanie jest możliwe tylko po jednym na raz i tylko przez „górę”, czyli zgodnie z zasadą LIFO. Ale czasami konieczne jest jednoczesne oczyszczenie całego stosu.

Jak wyczyścić stos
Jak wyczyścić stos

Niezbędny

  • - edytor tekstu lub IDE;
  • - tłumacz z używanego języka programowania.

Instrukcje

Krok 1

Użyj metod na obiektach stosu, które są specjalnie zaprojektowane do czyszczenia stosu. Są obecne w większości odpowiednich klas różnych bibliotek i frameworków. Na przykład klasa stosu. NET ma metodę Clear. Przykład jego zastosowania w C# może wyglądać tak:

Stos oStack = nowy Stos (); // utwórz obiekt stosu

oStack. Push ("000"); // wypełnij stos

oStack. Push ("111");

oStos. Wyczyść (); // wyczyść stos

Krok 2

Do czyszczenia można również wykorzystać metody zmiany liczby elementów klas kontenerów, na których często budowana jest funkcjonalność klas stosów. Wystarczy zredukować obecną liczbę elementów do zera. Na przykład klasa szablonów Qt QStack dziedziczy z klasy szablonów QVector, która ma metodę zmiany rozmiaru. Przykładem jego zastosowania może być tak:

QStack oStack; // deklaracja obiektu stosu

for (int i = 0; i <10; i ++) oStack.push (i); // wypełnij stos

oZmień rozmiar stosu (0); // wyczyść stos

Krok 3

Czyszczenie obiektu stosu można zwykle wykonać za pomocą operatora przypisania, który jest często implementowany w odpowiednich klasach. Aby to zrobić, obiekt stosu, który ma zostać wyczyszczony, musi mieć przypisany obiekt tymczasowy utworzony przez domyślny konstruktor. Na przykład klasa szablonowa stosu C++ Standard Library, która jest adapterem dla klas opartych na szablonach kontenera, nie posiada metod do arbitralnej zmiany liczby lub usuwania wszystkich elementów. Możesz to wyczyścić w ten sposób:

std:: stos <int, std:: lista> oStack; // deklaracja obiektu stosu

for (int i = 0; i <10; i ++) oStack.push (i); // wypełnij stos

oStos = std:: stos(); // wyczyść sto

Krok 4

Wyczyść obiekt stosu, wywołując konstruktor kopiujący za pomocą operatora new z argumentem obiektu utworzonym przez domyślny konstruktor:

std:: stos <int, std:: lista> oStack; // deklaracja obiektu stosu

for (int i = 0; i <10; i ++) oStack.push (i); // wypełnij stos

nowy std:: stos(oStos); // wyczyść sto

Krok 5

Stos można wyczyścić, sekwencyjnie pobierając wszystkie elementy przy użyciu odpowiednich metod:

std:: stos <int, std:: lista> oStack; // deklaracja obiektu stosu

for (int i = 0; i <10; i ++) oStack.push (i); // wypełnij stos

while (! oStack.empty ()) oStack.pop ();// wyczyść stos

Jednak to podejście ma złożoność czasową, która liniowo zależy od liczby elementów w stosie. Dlatego jego użycie nie jest racjonalne.

Zalecana: