链栈(linked stacks)
(1)运算实现
头文件:
#ifndef QUEUE_H
#define QUEUE_H
#include <iostream>
using namespace std;
template <class Type>
struct node {
Type data;
node *next;
};
template <class Type>
class stack {
public:
stack();//构造函数用于初始化(C++11可以在类里面初始化)
~stack();//析构函数用于释放所有空间
bool empty();//判断栈是否为空
void get_top(Type &x);//取栈顶
void push(const Type x);//入栈
void pop();//出栈
int count();//返回链栈的元素个数
void show();//打印链栈中的元素
void reverse();//链栈的逆置
private:
node<Type> *top;
};
template <class Type>
stack<Type>::stack() {
top = NULL;
}
template <class Type>
bool stack<Type>::empty() {
return top == NULL;
}
template <class Type>
void stack<Type>::get_top(Type &x) {
if (!empty())
x = top->data;
}
template <class Type>
void stack<