您的位置:首页 > 理论基础 > 数据结构算法

数据结构-->栈的顺序实现 ADT

2016-07-09 20:22 288 查看
typedef int SElemType;
typedef struct LNode
{
SElemType *base;//栈底地址
SElemType *top;//栈顶地址
int stacksize; //可用的最大容量
}SqStack;


bool InitStack(SqStack &S)
{
S.base = new SElemType[MAXSIZE];
if(!S.base) return ERROR;//申请失败
S.top = S.base;
S.stacksize = MAXSIZE;
return OK;
}


bool Push(SqStack &S,SElemType e)
{//压入元素e
if(S.top - S.base == S.stacksize) return ERROR; //栈满
*(S.top++) = e;
return OK;
}


bool Pop(SqStack &S,SElemType &e)
{//弹出栈顶并且赋值与e
if(S.top==S.base) return ERROR;
e = *(--S.top);
return OK;
}


SElemType GetTop(SqStack S)
{//返回栈顶元素
if(S.top!=S.base)
return *(S.top - 1);
return ERROR;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: