欢迎使用CSDN-markdown编辑器

来源:互联网 发布:node.js 应用场景 编辑:程序博客网 时间:2024/06/10 22:41
#include <stdio.h>#define maxSize 100typedef struct{  int data[maxSize];  int top;}sqStack;//栈空状态 s->top == -1    栈满状态 s->top == maxSize -1//初始化栈void initStack(sqStack *s){    s->top = -1;  //初始化栈,将栈顶元素设置为-1}//判断栈空int isEmpty(sqStack *s)   //判断栈顶是否为空{    if(s->top == -1) return 1;  //栈为空,返回1    else        return 0;    //不为空,返回0}//进栈void push(sqStack *s,int x)    {    if(s->top < maxSize - 1)   //栈满不能进栈        s->data[++s->top] = x;  //先移动指针,再进栈}//出栈void  pop(sqStack *s){    if(s->top > -1)        s->top--;   //每取出一个元素。s->top减1}//得到栈顶元素int gettop(sqStack *s){    if(s->top > -1)           return s->data[s->top];   //返回栈顶的元素值}int main(){    sqStack stack;    int i;    initStack(&stack);    for(i=0;i<10;i++){        printf("%d ",i);        push(&stack,i);    }        printf("\n");        while(!isEmpty(&stack)){            printf("%d ",gettop(&stack));            pop(&stack);        }    return 0;}
0 0