1
0

TreeStack.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //
  2. // Created by 李洋 on 2023/9/6.
  3. //
  4. #ifndef LEECODE_C_TREESTACK_H
  5. #define LEECODE_C_TREESTACK_H
  6. #pragma once
  7. #include <iostream>
  8. #include <vector>
  9. #include "./Tree.h"
  10. class TreeStack {
  11. private:
  12. std::vector<TreeNode *> data;
  13. public:
  14. // 入栈操作
  15. void push(TreeNode *value) {
  16. data.push_back(value);
  17. }
  18. // 出栈操作
  19. TreeNode *pop() {
  20. if (!isEmpty()) {
  21. TreeNode *topValue = data.back();
  22. data.pop_back();
  23. return topValue;
  24. } else {
  25. std::cerr << "Error: Stack is empty." << std::endl;
  26. return nullptr; // 可以根据需要返回其他值或抛出异常
  27. }
  28. }
  29. // 获取栈顶元素
  30. TreeNode *top() const {
  31. if (!isEmpty()) {
  32. return data.back();
  33. } else {
  34. std::cerr << "Error: Stack is empty." << std::endl;
  35. return nullptr; // 可以根据需要返回其他值或抛出异常
  36. }
  37. }
  38. // 检查栈是否为空
  39. bool isEmpty() const {
  40. return data.empty();
  41. }
  42. // 获取栈的大小
  43. size_t size() const {
  44. return data.size();
  45. }
  46. };
  47. #endif //LEECODE_C_TREESTACK_H
备用站点 当前处于降级运行的备用站点,仅供应急访问,数据和功能可能不是最新。