/******************************************************
一个静态数组实现的简单栈
******************************************************/
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define MAX_STACK_SIZE 100 /* 栈向量大小 */
typedef int ElemType ;
typedef struct sqstack
{
int top;
int bottom;
ElemType stack_array[MAX_STACK_SIZE] ;
}SqStack ;
SqStack Init_Stack()
{
SqStack S;
S.bottom=S.top=0;
return (S);
}
int push(SqStack *S,ElemType e) /* 使数据元素e进栈成为新的栈顶 */
{
if((*S).top==MAX_STACK_SIZE-1)
{
return ERROR; /* 栈满,返回错误标志 */
}
(*S).top++ ; /* 栈顶指针加1 */
(*S).stack_array[(*S).top]=e ; /* e成为新的栈顶 */
return OK; /* 压栈成功 */
}
int pop(SqStack *S,ElemType *e ) /*弹出栈顶元素*/
{
if((*S).top==0)
{
return ERROR; /* 栈空,返回错误标志 */
}
*e=(*S).stack_array[(*S).top] ;
(*S).top--;
return OK;
}
int main()
{
int tmp=0,i=0;
SqStack S;
S=Init_Stack();
for(i=0;i<10;i++)
{
push(&S,i);
}
for(i=0;i<10;i++)
{
pop(&S,&tmp);
printf("%d\n",tmp);
}
return 0;
}
一个静态数组实现的简单栈
最新推荐文章于 2022-08-11 10:44:35 发布