fojtasd

Untitled

Apr 7th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. class Stack
  8. {
  9. public:
  10.     Stack();
  11.     ~Stack();
  12.  
  13.     void Push(const char X);
  14.     char Pop();
  15.     char Top() const;
  16.     bool IsEmpty() const;
  17.     void Clear();
  18.  
  19. private:
  20.     struct StackItem
  21.     {
  22.         char Value;
  23.         StackItem* Prev;
  24.     };
  25.     StackItem* StackPointer;
  26. };
  27.  
  28. Stack::Stack()
  29. {
  30.     this->StackPointer = nullptr;
  31. }
  32.  
  33. Stack::~Stack()
  34. {
  35.     this->Clear();
  36. }
  37.  
  38. void Stack::Push(const char X)
  39. {
  40.     StackItem* n = new StackItem();
  41.     n->Value = X;
  42.     n->Prev = this->StackPointer;
  43.     this->StackPointer = n;
  44. }
  45.  
  46. char Stack::Pop()
  47. {
  48.     StackItem* d = this->StackPointer;
  49.     char ch = d->Value;
  50.     this->StackPointer = this->StackPointer->Prev;
  51.     delete d;
  52.     return ch;
  53. }
  54.  
  55. char Stack::Top() const
  56. {
  57.     return this->StackPointer->Value;
  58. }
  59.  
  60. bool Stack::IsEmpty() const
  61. {
  62.     return this->StackPointer == nullptr;
  63. }
  64.  
  65. void Stack::Clear()
  66. {
  67.     while (!this->IsEmpty())
  68.     {
  69.         this->Pop();
  70.     }
  71. }
  72.  
  73. int main() {
  74.     Stack nigger;
  75.     char a = 'a';
  76.     char b = 'b';
  77.     char c = 'c';
  78.     char d = 'd';
  79.     nigger.Push(a);
  80.     nigger.Push(b);
  81.     nigger.Push(c);
  82.     nigger.Push(d);
  83.  
  84.     cout << "Je neco v zasobniku?" << nigger.IsEmpty() << endl;
  85.     cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
  86.     cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
  87.     cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
  88.     cout << "Vytahnu sranec. Co je to?" << nigger.Pop() << endl;
  89.  
  90.  
  91.  
  92.     system("pause");
  93.     return 1;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment