Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Zadanie 4.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- class Stos
- {
- int *tab;
- int rozmiar, wierzcholek;
- public:
- //konstruktor tworzacy tablice danego rozmiaru
- Stos(int wielkosc)
- {
- tab = new int[wielkosc];
- wierzcholek = -1;
- rozmiar = wielkosc;
- cout << "TU KONSTRUKTOR Z 1 PARAMETREM!" << endl << "Adres stosu: " << tab << endl;
- }
- //konstruktor bezparametrowy tworzacy 10 elementowa tablice
- Stos()
- {
- tab = new int[10];
- wierzcholek = -1;
- rozmiar = 10;
- cout << "TU KONSTRUKTOR BEZPARAMETROWY!" << endl << "Adres stosu: " << tab << endl;
- }
- //konstruktor kopiujący
- Stos(Stos& tmp)
- {
- tab = new int[tmp.rozmiar];
- rozmiar = tmp.rozmiar;
- wierzcholek = tmp.wierzcholek;
- cout << "TU KONSTRUKTOR KOPIUJACY!" << endl << "Adres stosu: " << tab << endl;
- }
- //destruktor usuwajacy tablice z pamieci
- ~Stos()
- {
- cout << "TU DESTRUKTOR!" << endl << "Adres stosu: " << tab << endl;
- delete[] tab;
- }
- //inicjacja stosu, który jest tablica int
- void init(int x)
- {
- tab = new int[x];
- wierzcholek = -1;
- rozmiar = x;
- }
- //metoda usuwajaca tablice z pamieci
- void destroy()
- {
- delete[] tab;
- }
- //metoda umieszczajaca liczbe na tablica
- void push(int y)
- {
- if (!full()) tab[++wierzcholek] = y;
- else cout << "Stos jest pelny, nic nie moge dopisac!" << endl;
- }
- //metoda zdejmujaca liczbe z wierzcholka
- void pop()
- {
- --wierzcholek;
- }
- //metoda zwracajaca liczbe z wierzcholka stosu
- int top()
- {
- if (empty())
- {
- cout << "Nie moge przeczytac liczby, bo stos jest pusty!" << endl;
- }
- return tab[wierzcholek];
- }
- //metoda zwracajaca wartosc 1 dla pustego stosu lub 0 dla nie pustego
- int empty()
- {
- if (wierzcholek == -1) return 1;
- else return 0;
- }
- //metoda zwracajaca wartosc 1 dla stosu pelnego lub 0 dla niepelnego
- int full()
- {
- if (wierzcholek == (rozmiar - 1)) return 1;
- else return 0;
- }
- };
- //funkcja zewnetrzna
- void dodaj(Stos s, int a) {
- s.push(a);
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- Stos s;
- s.push(0);
- dodaj(s, 1);
- dodaj(s, 2);
- while (!s.empty()) {
- cout <<
- s.top();
- s.pop();
- }
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment