stack.h
来自「本系统所完成功能如下:  即时消息:用户之间发送即时消息。 」· C头文件 代码 · 共 113 行
H
113 行
#ifndef _STACK_H_
#define _STACK_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <stdio.h>
#include "stdlib.h"
#include "conio.h"
#include <iostream.h>
const int MaxStackSize = 50;
template<class T>
class Stack
{ private:
T stacklist[MaxStackSize];
int top;
public:
Stack(void);
void Push(const T& item);
T Pop(void);
void ClearStack(void);
T Peek(void);//const;
int StackEmpty(void) const;
int StackFull(void) const;
void InitailStack();
void PrintStack();
};
//顺序栈的类实现
// 构造函数 ∥初始化top
template<class T>
Stack<T>::Stack(void):top(-1)
{ }
//清空栈
template<class T>
void Stack<T>::ClearStack()
{
top=-1;
}
// 向栈顶压入一个元素
template<class T>
void Stack<T>::Push(const T& item)
{
if(top==MaxStackSize-1)
{
cerr<<"Stack overflow!"<<endl;
exit(1);
}
top++;
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)
{ if(top==-1)
{ cerr<<"Attempt to peek an empty stack!"<<endl;
exit(1);
}
return stacklist[top];
}
// 测试栈是否为空
template<class T>
int Stack<T>::StackEmpty(void) const
{ return top==-1;
}
//测试栈是否为满
template<class T>
int Stack<T>::StackFull(void) const
{ return top == MaxStackSize-1; }
//初始化栈
template<class T>
void Stack<T>::InitailStack()
{
T item;
while(cin>>item&&item!=0)
Push(item);
}
//输出栈的所有元素
template<class T>
void Stack<T>::PrintStack()
{
for(int i=0;i<=top;i++)cout<<stacklist[i]<<" ";
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?