栈的数组实现
程序员文章站
2024-01-28 17:02:28
...
栈的数组实现
把栈底固定在数组的底部(下标值大的一端),而让栈顶向数组的顶部(下标值小的一端)浮动。并由一个游标top指示当前栈顶元素的位置。
struct STACK{
int top;/*用来标识栈顶元素的下标位置*/
Elementtype elements[maxlength];/*存放数据元素的数组*/
};
void MakeNull(){
/*将栈S置为空*/
S.top = maxlength;/*将栈顶*/
}
boolean Empty(STACK S){
/*测试栈S是否为空*/
if(S.top > maxlength - 1)
return TRUE;
else
return FALSE;
}
Elementtype Top(STACK S){
/*返回栈S的栈顶元素*/
if(Empty(S))
return NULL;
else
return (S.elements[S.top]);
}
void Pop(STACK &S){
/*出栈*/
if(Empty(S))
error("stack is empty");
else
S.top++;
}
void Push(Elementtype x,STACK &S){
/*入栈*/
if(s.top == 0)
error("stack is full");
else
S.top--;
S.elements[S.top] = x;
}
下一篇: spring AOP源码深度解析