Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template <typename T> class element
  6. {
  7. public:
  8. T current;
  9. element <T>* next;
  10. element(T x, element<T> *y)
  11. {
  12. current = x;
  13. next = y;
  14. }
  15. };
  16.  
  17. template <typename T> class stack
  18. {
  19. int length;
  20. element <T>* top_element_stack;
  21. public:
  22. stack ()
  23. {
  24. length = 0;
  25. top_element_stack = NULL;
  26. }
  27.  
  28. void pop ()
  29. {
  30. if (top_element_stack != NULL)
  31. {
  32. element<T>* temporary = top_element_stack;
  33. top_element_stack = top_element_stack->next;
  34. delete temporary;
  35. length --;
  36.  
  37. }
  38. }
  39.  
  40. void push (T x)
  41. {
  42. element<T>* temporary = new element<T> (x, top_element_stack);
  43. top_element_stack = temporary;
  44. length ++;
  45. }
  46. int size ()
  47. {
  48. return length;
  49. }
  50.  
  51. T top ()
  52. {
  53. if (length == 0)
  54. {
  55. throw 1;
  56. }
  57. T temporary = top_element_stack->current;
  58. return temporary;
  59. }
  60. catch(int i)
  61. {
  62. cout << " N0 element, error " << i << endl;
  63. }
  64. };
  65.  
  66. int main()
  67.  
  68. {
  69. stack <int> stack_1;
  70. int element;
  71. int size;
  72. cin >> size;
  73. cout << "-------" << endl;
  74. for (int i = 0; i < 5; i ++)
  75. {
  76. cin >> element;
  77. stack_1.push(element);
  78. }
  79. for (int i = 0; i < stack_1.size(); i ++) {
  80. try {
  81. cout << stack_1.top() << endl;
  82. } catch (int n) {
  83. switch (n) {
  84. case 1:
  85. cout << "ERROR " << n << ": empty stack";
  86. break;
  87. }
  88. }
  89. cout <<"-------" << endl;
  90. stack_1.pop();
  91. }
  92.  
  93. return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement