栈的基本应用c++

来源:百度知道 编辑:UC知道 时间:2024/06/22 04:54:19
用链栈表实现堆栈的基本操作,编写实现堆栈的下列四种操作的函数:将堆栈S置为空;将元素x压入堆栈S的栈顶;弹出堆栈S的栈顶元素;取堆栈S的栈顶元素。

#include<iostream>
#include<conio.h>
using namespace std;

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10

#define OK 1
#define ERROR 0
#define FAILURE 0
#define FAILED NULL

typedef int ElemType;
typedef int Status;

typedef struct SqStack
{
ElemType *top;
ElemType *base;
int stacksize;
}SqStack;

Status InitStack(SqStack *s)
{
s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType));
if(!s->base)
{
cout<<"栈分配失败!"<<endl;
return ERROR;
}
s->top = s->base;
s->stacksize = STACK_INIT_SIZE;
return OK;
}

Status DestroyStack(SqStack *s)
{
if(NULL==s)
{
cout<<"栈不存在!"<<endl;
return ERROR;
}
s->stacksize = 0;
free(s->base);
return OK;
}

Status C