Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- class Stack
- {
- public:
- Stack();
- ~Stack();
- void Push(const char X);
- char Pop();
- char Top() const;
- bool IsEmpty() const;
- void Clear();
- private:
- struct StackItem
- {
- char Value;
- StackItem* Prev;
- };
- StackItem* StackPointer;
- };
- Stack::Stack()
- {
- this->StackPointer = nullptr;
- }
- Stack::~Stack()
- {
- this->Clear();
- }
- void Stack::Push(const char X)
- {
- StackItem* n = new StackItem();
- n->Value = X;
- n->Prev = this->StackPointer;
- this->StackPointer = n;
- }
- char Stack::Pop()
- {
- StackItem* d = this->StackPointer;
- char ch = d->Value;
- this->StackPointer = this->StackPointer->Prev;
- delete d;
- return ch;
- }
- char Stack::Top() const
- {
- return this->StackPointer->Value;
- }
- bool Stack::IsEmpty() const
- {
- return this->StackPointer == nullptr;
- }
- void Stack::Clear()
- {
- while (!this->IsEmpty())
- {
- this->Pop();
- }
- }
- int main() {
- Stack nigger;
- char a = 'a';
- char b = 'b';
- char c = 'c';
- char d = 'd';
- nigger.Push(a);
- nigger.Push(b);
- nigger.Push(c);
- nigger.Push(d);
- cout << "Je neco v zasobniku?" << nigger.IsEmpty() << endl;
- cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
- cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
- cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
- cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
- system("pause");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment