astack.h

来自「数据结构与算法分析」· C头文件 代码 · 共 29 行

H
29
字号
// First, get the declaration for the base stack class
#include "stack.h"

// Array-based stack implementation
template <class Elem> class AStack: public Stack<Elem> {
private:
  int size;                 // Maximum size of stack
  int top;                  // Index for top element
  Elem *listArray;          // Array holding stack elements
public:
  AStack(int sz =DefaultListSize)     // Constructor
    { size = sz;  top = 0; listArray = new Elem[sz]; }
  ~AStack() { delete [] listArray; }  // Destructor
  void clear() { top = 0; }
  bool push(const Elem& item) {
    if (top == size) return false; // Stack is full
    else { listArray[top++] = item;  return true; }
  }
  bool pop(Elem& it) {            // Pop top element
    if (top == 0) return false;
    else { it = listArray[--top];  return true; }
  }
  bool topValue(Elem& it) const { // Return top element
    if (top == 0) return false;
    else { it = listArray[top-1];  return true; }
  }
  int length() const { return top; }
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?