/*
定义顺序栈类(初始化,入栈,退栈。读栈顶元素以及顺序输出栈顶指针与栈中的元素
*/
#include<iostream>
using namespace std;
//
template <class T>
class sq_Stack
{
private:
int mm; // 存储容量
int top;// 栈顶指针
T *s; //顺序栈存储控件首地址
public:
sq_Stack(int);
void prt_sq_Stack();
int flag_sq_Stack();
void ins_sq_Stack(T);
T del_sq_Stack();
T read_sq_Sqack();
};
//建立容量为mm的空栈
template<class T>
sq_Stack<T>::sq_Stack(int m)
{
mm = m;
s = new T[mm]; // 动态申请存储空间
top = 0;
return;
}
// 顺序输出栈顶指针与栈中的元素
template<class T>
void sq_Stack<T>::prt_sq_Stack()
{
int i;
cout<<"top = "<< top << endl;
for(int i = top; i > 0; i--)
{
cout << s[i - 1] << end;
}
return;
}
// 检测顺序表的状态
template<class T>
void sq_Stack<T>::flag_sq_Stack()
{
if(top == mm)return -1;
if(top == 0) return 0;
return(1);
}
// 入栈
template<class T>
void sq_Stack<T>::ins_sq_Stack(T x)
{
if(top == m)
{
cout << "Stack overflow!" << endl;
return;
}
top = top + 1;
s[top - 1] = x;
return;
}
// 退栈
template<class T>
T sq_Stack<T>::del_sq_Stack()
{
T y;
if(top == 0)
{
cout << "Stack underflow!" << endl;
return(0);
}
y = s[top - 1];
top = top - 1;
return y;
}
// 读栈顶元素
template<class T>
T sq_Stack<T>::read_sq_Sqack()
{
if(top == 0)
{
cout<<"Stack empty!" << endl;
return 0;
}
return s[top - 1];
}
c++ 实现顺序栈类(初始化,入栈,退栈。读栈顶元素以及顺序输出栈顶指针与栈中的元素<<计算机软件技术基础 徐士良>>
最新推荐文章于 2022-11-10 20:14:48 发布