zoukankan      html  css  js  c++  java
  • C语言实现栈代码

    /*
        栈的特性:先进后出。
        栈在计算语言处理和将递归算法改为非递归算法等方面起着非常重要的作用。
    */
    
    #define INITSIZE 100 //储存空间的初始分配量
    typedef int ElemType;
    typedef struct
    {
        int top;           //栈顶指针
        ElemType *base;    //存放元素的动态数组空间
        int stacksize;     //当前栈空间的大小
    }sqstack;
    
    //初始化操作
    //创建一个空栈,栈顶指针top初始化为0
    void initstack(sqstack *S)
    {
        s->base = (ElemType *)malloc(INITSIZE * sizeof(ElemType));    //申请存储空间
        s->top = 0;             //栈顶指针初始值为0
        s->stacksize = INITSIZE;       //容量为初始值
    }
    
    //求栈长操作
    int getlen(sqstack *S)
    {
        return (S->top);
    }
    
    //取栈顶元素操作
    //将栈顶元素值存入e指向的内存单位,top值不变
    int gettop(sqstack *S,ElemType *e)
    {
        if(S->top==0) return 0;      //栈空,返回0
        *e = S->base[S->top-1];      //栈顶元素值存入指针e所指向的内存单元
        return 1;
    }
    
    //压栈操作
    //将入栈元素x存入top所指的位置上,然后栈顶指针top增1
    int push(sqstack *S,ElemType x)
    {
        if(S->top == S->stacksize)  //若栈满,增加一个存储单元
        {
            S->base = (ElemType *)realloc(S->base,(S->stacksize+1)*sizeof(ElemType));
            if(!S->base) return 0;
            S->stacksize++;
        }
        S->base[S->top++] = x;
        return 1;
    }
    
    //弹栈操作
    //先将栈顶指针top减1,再将top单元中的元素存入指针e所指向的内存单元
    int pop(sqstack *S,ElemType *e)
    {
        if(S->top==0)return 0;
        *e = S->base[--S->top];
        return 1;
    }
    
    //判栈S是否为空
    int emptystack(sqstack *S)
    {
        if(S->top==0) return 1;
        else return 0;
    }
    
    //输出栈操作
    void list(sqstack *S)
    {
        int i;
        for(i=S->top-1;i>=0;i--)
        {
            printf("%4d",S->base[i]);
        }
        printf("
    ");
    }
  • 相关阅读:
    Android应用的跨语言调用小结
    用户体验技术优化系列(一)
    富客户端开发技术选型
    全年工作总结
    暗黑破坏神2:Tab打开地图就变卡顿解决办法
    winform使用post方式启动IE传递数据
    winform listbox 显示tooltip(防闪烁)
    android代码混淆
    android singleTask问题
    android在activity中锁屏解锁后重走OnCreate的问题的解决办法
  • 原文地址:https://www.cnblogs.com/wzqstudy/p/10219895.html
Copyright © 2011-2022 走看看