21xrx.com
2024-11-22 02:51:17 Friday
登录
文章检索 我的文章 写文章
C++ Stack头文件代码
2023-07-13 11:55:36 深夜i     --     --
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++程序员参考和借鉴。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复