Advertisement
Guest User

Untitled

a guest
Oct 19th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. // Stack.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Stack.h"
  6. #include <iostream>
  7.  
  8.  
  9. Stack::Stack()
  10. {
  11. root = nullptr;
  12. }
  13.  
  14.  
  15. Stack::~Stack()
  16. {
  17. }
  18.  
  19.  
  20. void Stack::push(StackElement* element) {
  21. element->prev = root;
  22. root = element;
  23.  
  24. ++size;
  25. }
  26.  
  27. StackElement* Stack::pop() {
  28. if (root == nullptr)
  29. return nullptr;
  30.  
  31. StackElement* oldRoot = root;
  32. root = root->prev;
  33. --size;
  34.  
  35. return oldRoot;
  36. }
  37.  
  38. bool Stack::contains(int key) {
  39. StackElement* item = root;
  40. while (item != nullptr) {
  41. if (item->getKey() == key)
  42. return true;
  43.  
  44. item = item->prev;
  45. }
  46.  
  47. return false;
  48. }
  49.  
  50. int Stack::findPlace(int key) {
  51.  
  52. int place = size - 1;
  53. StackElement* item = root;
  54. while (item != nullptr) {
  55. if (item->getKey() == key)
  56. return place;
  57.  
  58. --place;
  59. item = item->prev;
  60. }
  61. return -1;
  62. }
  63.  
  64. void Stack::clear() {
  65. StackElement* item = root;
  66. while (item != nullptr) {
  67. StackElement* oldItem = item;
  68. item = item->prev;
  69.  
  70. delete item;
  71. }
  72.  
  73. size = 0;
  74. root = nullptr;
  75. }
  76.  
  77. Stack* Stack::revert() {
  78. return nullptr;
  79. }
  80.  
  81. int Stack::getSize() {
  82. return size;
  83. }
  84. void Stack::print() {
  85. std::cout << "Stack = [";
  86.  
  87. StackElement* item = root;
  88. for (int i = size; i >= 0; --i) {
  89. std::cout << item->getKey();
  90. if (!i)
  91. std::cout << ",";
  92.  
  93. item = item->prev;
  94. }
  95. std::cout << "] size = " << size;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement