Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. #include "stdafx.h"
  2.  
  3.  
  4. #include <iostream>
  5.  
  6. #include <iomanip> // для setw
  7.  
  8. using namespace std;
  9.  
  10. class Stack
  11. {
  12. public:
  13. void push() ;
  14. void pop() ;
  15. void print();
  16. void makeEmpty() ;
  17. };
  18.  
  19. class StackP : public Stack
  20. {
  21. private:
  22. int x;
  23. public:
  24. StackP *Next, *Head;
  25.  
  26.  
  27. void push(int x, StackP *&MyStackP) const
  28. {
  29. StackP *temp = new StackP;
  30. temp->x = x;
  31. temp->Next = MyStackP->Head;
  32. MyStackP->Head = temp;
  33.  
  34. }
  35.  
  36. void print(StackP *MyStackP)
  37. {
  38. StackP *temp = MyStackP->Head;
  39. while (temp != NULL)
  40. {
  41. cout << temp->x << " ";
  42. temp = temp->Next;
  43. }
  44. }
  45.  
  46. void ClearStackP(StackP *MyStackP)
  47. {
  48. while (MyStackP->Head != NULL)
  49. {
  50. StackP *temp = MyStackP->Head->Next;
  51. delete MyStackP->Head;
  52. MyStackP->Head = temp;
  53. }
  54. }
  55.  
  56. void makeEmpty(StackP *MyStackP)
  57. {
  58. MyStackP->Head = NULL;
  59. }
  60. };
  61.  
  62.  
  63. class StackA : public Stack
  64. {
  65. private:
  66. char *stackPtr; // указатель на стек
  67. const int size; // максимальное количество элементов в стеке
  68. int top; // номер текущего элемента стека
  69. public:
  70.  
  71.  
  72.  
  73. StackA(int maxSize) :
  74. size(maxSize) // инициализация константы
  75. {
  76. stackPtr = new char[size]; // выделить память под стек
  77. top = 0; // инициализируем текущий элемент нулем;
  78. }
  79.  
  80.  
  81.  
  82. ~StackA()
  83. {
  84. delete[] stackPtr; // удаляем стек
  85. }
  86.  
  87.  
  88. void push(const char &value)
  89. {
  90.  
  91. if (top < size);
  92.  
  93.  
  94.  
  95. stackPtr[top++] = value;
  96.  
  97.  
  98. }
  99.  
  100.  
  101.  
  102. void pop()
  103. {
  104.  
  105. if (top > 0);
  106.  
  107. stackPtr[--top];
  108.  
  109. }
  110.  
  111.  
  112. void makeEmpty()
  113. {
  114. top = 0;
  115. }
  116.  
  117. int getTop() const
  118. {
  119. return top;
  120. }
  121.  
  122. int getStackSize() const
  123. {
  124. return size;
  125. }
  126.  
  127. char *getPtr()
  128. {
  129. return stackPtr;
  130. }
  131. // вывод стека на экран
  132.  
  133. void print()
  134. {
  135. int ix;
  136.  
  137. for (ix = 0; ix < top; ix++)
  138. cout << setw(2) << stackPtr[ix];
  139.  
  140. cout << endl;
  141. }
  142.  
  143. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement