栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
#include<iostream>
#include<stdlib.h>
#define size 100
#define T 1
#define F 0
using namespace std;
typedef int ElemType;
typedef int status;
typedef struct stack{
ElemType *base;//尾指针
ElemType *top;//头指针
int stacksize;//栈的初始空间大小
}stack;
//构造一个栈
status Initstack(stack &S)
{
S.base = (ElemType *)malloc(size*sizeof(ElemType));
if(!S.base)
{
cout<<"分配空间失败!!!";
exit(-1);
}
S.top = S.base;
S.stacksize = size;
cout<<"成功构造一个空栈&