⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9-8.h

📁 《c++语言程序设计》例题程序
💻 H
字号:
//9-8.h
#ifndef STACK_CLASS
#define STACK_CLASS

#include <iostream.h>
#include <stdlib.h>

const int MaxStackSize = 50;  //栈的大小,即栈中元素的最大个数

//类的定义
template <class T>
class Stack
{
    private:
        T stacklist[MaxStackSize];  //数组,用于存放栈的元素
        int top;  //栈顶位置(数组下标)
    public:
        Stack (void);  // 构造函数,初始化栈
        
        // 栈更新操作
        void Push (const T& item);  //将元素item压入栈
        T Pop (void);  //将栈顶元素弹出栈
        void ClearStack(void);  //将栈清空
        
        // 访问栈顶元素
        T Peek (void) const;
        
        // 测试栈的状态
        int StackEmpty(void) const;
        int StackFull(void) const;      // array implementation
};

//类的实现
// 构造函数
template <class T>
Stack<T>::Stack (void) : top(-1)  //栈顶初始化为-1
{}

// 将元素item压入栈
template <class T>
void Stack<T>::Push (const T& item)
{
    // 如果栈满,程序终止
    if (top == MaxStackSize-1)
    {
        cerr << "Stack overflow!" << endl;
        exit(1);
    }
    
    top++;    //栈顶指针增1
    stacklist[top] = item;    //将新元素压入栈顶
}

// 将栈顶元素弹出栈
template <class T>
T Stack<T>::Pop (void)
{
    T temp;

    // 如果栈空,程序终止
    if (top == -1)
    {
        cerr << "Attempt to pop an empty stack!" << endl;
        exit(1);
    }
    
    temp = stacklist[top];  //取出栈顶元素
    
    top--;  //栈顶指针自减
    return temp;  //返回栈顶元素
}

// 访问栈顶元素
template <class T>
T Stack<T>::Peek (void) const
{
    // 如果栈空,程序终止
    if (top == -1)
    {
        cerr << "Attempt to peek at an empty stack!" << endl;
        exit(1);
    }
    return stacklist[top];  //返回栈顶元素
}


// 测试是否栈空
template <class T>
int Stack<T>::StackEmpty(void) const
{
   return top == -1;  //如果栈空则返回TRUE,否则返回FALSE
}

// 测试是否栈满
template <class T>
int Stack<T>::StackFull(void) const
{
   return top == MaxStackSize-1;  //如果栈满则返回TRUE,否则返回FALSE 
}

// 清空栈
template <class T>
void Stack<T>::ClearStack(void) 
{
    top = -1;
}

#endif  // STACK_CLASS

⌨️ 快捷键说明

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