Kategorie: Programowanie

Implementacje obiektowa Stosu w C++

Cześć! Cieszę się, że mnie odwiedziłeś/aś. Zanim przejdziesz do artykułu chciałbym zwrocić Ci uwagę na to, że ten artykuł był pisany kilka lat temu (2012-12-07) miej więc proszę na uwadzę że rozwiązania i przemyślenia które tu znajdziesz nie muszą być aktualne. Niemniej jednak zachęcam do przeczytania.

Na początek przedstawię deklarację klasy..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class stack
{
private:
struct wezel
{
wezel *next;
int value;
};
wezel* head;

public:
stack();
~stack();
bool push(int);
int pop();
};

Struktura węzła to nic innego jak sam wskaźnik i wartość. Dalej mamy konstruktor i destruktor oraz funkcję push(int) czyli dodaj na stos i pop() czy zdejmij ze stosu.
No i właściwa implementacja tej klasy:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
stack::stack(){
head=NULL; // na poczatek ustawiamy head na null, czyli stos na poczatku jest zerowy
}

stack::~stack(){
delete head;
}

bool stack::push(int a){
wezel* nowy = new wezel; //tworzymy nowy węzeł, nowy egzemplarz struktury
nowy->value=a; //dopisujemy do niego wartosć podana w parametrze push(int)
nowy->next=head;//jako kolejny element w stosie będzie glowa, czyli nasz null
head=nowy;//ustawiamy nasz nowo stworzony węzeł jako pierwyszy (w stosie kładziemy na wierzch i zdejmujemy zwierzchu)
return true; //i zwracamy true..
}

int stack::pop(){
return head->value; //zwracamy wartość z góry stosu
}

Całość implementacji jest zrobiona poprawnie, ale brakuje jednego elementu ;)
Przy pobieraniu wartości z góry stosu od razu jest ona kasowana. I to zadanie jest do zrobienia dla Ciebie! :) Jeśli uda Ci się dopisac usuwanie pobieranego elementu – będzie to już całościowa implementacja stosu. Jak to zrobić? Podpowiedź znajdziesz w komentarzach do kodu który znajdziesz tutaj :)

Dzięki za wizytę,
Mateusz Mazurek
Mateusz M.

Ostatnie wpisy

Just-in-time compiler (JIT) w Pythonie

Cześć! W Pythonie 3.13 dodano JITa! JIT, czyli just-in-time compiler to optymalizacja na która Python naprawdę długo czekał. Na nasze… Read More

2 tygodnie ago

Podsumowanie roku 2024

Cześć! Zapraszam na podsumowanie roku 2024. Książki W sumie rok 2024 był pod względem ilości książek nieco podobny do roku… Read More

2 tygodnie ago

Podsumowanie: wrzesień, październik, listopad i grudzień 2024

Podtrzymując tradycję, prawie regularnych podsumowań, zapraszam na wpis! Nie mogło obyć się bez Karkonoszy We wrześniu odwiedziłem z kolegą Karkonosze,… Read More

3 tygodnie ago

Podsumowanie: maj, czerwiec, lipiec i sierpień 2024

Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More

5 miesięcy ago

Podsumowanie: kwiecień 2024

Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More

9 miesięcy ago

Podsumowanie: luty i marzec 2024

Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More

10 miesięcy ago