21xrx.com
2025-07-10 03:57:28 Thursday
文章检索 我的文章 写文章
C++ Stack头文件代码
2023-07-13 11:55:36 深夜i     28     0
C++ Stack 头文件 代码

C++ Stack头文件可以作为C++程序中栈数据结构的实现,其能够方便地实现对数据的存储和管理。下面是一个基本的C++ Stack头文件的代码。

#ifndef STACK_H
#define STACK_H
const int STACK_CAPACITY = 100;
template<typename T>
class Stack{
  private:
    int size;  //栈中的元素个数
    T elements[STACK_CAPACITY];  //栈中的元素
  public:
    Stack();  //构造函数
    void push(T const& elem);  //将元素elem入栈
    void pop();   //将栈顶元素弹出
    T top() const//返回栈顶元素
    bool empty() const;   //返回栈是否为空
};
//构造函数
template<typename T>
Stack<T>::Stack()
  size = 0;
//将元素elem入栈
template<typename T>
void Stack<T>::push(T const& elem){
  if(size == STACK_CAPACITY){
    throw std::out_of_range("Stack<>::push(): stack is full");
  }
  elements[size++] = elem;
}
//将栈顶元素弹出
template<typename T>
void Stack<T>::pop(){
  if(size == 0){
    throw std::out_of_range("Stack<>::pop(): stack is empty");
  }
  --size;
}
//返回栈顶元素
template<typename T>
T Stack<T>::top() const{
  if(size == 0){
    throw std::out_of_range("Stack<>::top(): stack is empty");
  }
  return elements[size-1];
}
//返回栈是否为空
template<typename T>
bool Stack<T>::empty() const
  return size == 0;
#endif

该头文件定义了一个名为Stack的类,其中包含构造函数和4个成员函数。该类可以使用模板来定义不同类型的数据。

其中,构造函数用于初始化栈;push()函数将一个元素入栈;pop()函数将栈顶的元素弹出栈;top()函数返回栈顶元素,但不弹出;empty()函数则判断栈是否为空。

通过使用该头文件,可以轻松地实现对栈数据结构的应用和研究。同时,该头文件的代码也可供C++程序员参考和借鉴。

  
  

评论区