1.特点:
- 先进后出
- 只在一端(栈顶)进行插入删除操作
2.堆栈ADT
- 类型名:Stack;
- 数据对象集:一个有0个或多个元素的有穷线性表;
- 操作集:
1.Stack() :构造函数,生成空堆栈,最大程度maxSize;
2.IsFull():判空;
3.IsEmpty():判满;
4.Push():插入栈顶元素;
5.Pop():删除并返回栈顶元素;
3.堆栈的顺序实现
//代码未测试
#include <iostream>
#include <stdio.h>
using namespace std;
template <class T>
class Stack{
public:
Stack(int maxSize);
~Stack();
bool IsFull();
bool IsEmpty();
bool Pop(T &x);
bool Push(T x);
private:
int top; //指向当前栈顶元素所在位置
T *s;
int maxSize;
};
template <class T>
Stack ::Stack(int n){
maxSize = n;
s = new T[maxSize];
top = -1;
}
template <class T>
Stack ::~Stack(){
delete []s;
s = NULL;
}
template <class T>
bool IsFull(){
if(top == maxSize-1) return true;
else return