(四)顺序栈的入栈和出栈

来源:互联网 发布:会声会影x2软件下载 编辑:程序博客网 时间:2024/04/30 23:57

栈的基本思想是先进后出,如同弹夹的子弹压入和弹出,一般叫进栈和出栈。

顺序栈的结构定义

typedef int SElemType;typedef struct {    SElemType data[MAXSIZE];    int top;}SqStack;
初始化、入栈和出栈函数

//初始化Status InitStack(SqStack *s){    s->top = -1;    return OK;};//插入元素e为新的栈顶元素Status Push(SqStack *s,SElemType e){    if(s->top == MAXSIZE-1)        return ERROR;    s->top++;    s->data[s->top] = e;    return OK;}//出栈Status Pop(SqStack *s,SElemType *e){    if(s->top == -1){        return ERROR;    }    *e = s->data[s->top];    s->top--;    return OK;}Status OutputStack(SqStack s){    int i;    for (i = 0; i <= s.top; i++) {        printf("第%d个元素值是%d\n",i+1,s.data[i]);    }}
main函数

int main() {    SqStack s;    InitStack(&s);    int x;    SElemType e;    printf("请输入要入栈几个元素:");    scanf("%d",&x);    for (int i = 0; i < x; i++) {        printf("请输入要入栈的元素的值:");        scanf("%d",&e);        Push(&s,e);    }    OutputStack(s);    Pop(&s,&e);    printf("出栈数:%d",e);    return 0;}

原创粉丝点击