zoukankan      html  css  js  c++  java
  • 栈的数组实现

    //栈的数组实现

    #include <cstdio>
    #include <cstdlib>
    //#define _OJ_
    #define stack_size 100

    typedef struct Lnode
    {
        int base;
        int top;
        int *elem;
    } Lnode, *stack;

    stack
    creat_list(stack s)
    {
        s = (stack) malloc (sizeof(Lnode));
        s->elem = (int*) malloc (stack_size * sizeof(int));
        s->top = s->base = -1;
        return s;
    }

    int
    isEmpty(stack s)
    {
        if(s->top == s->pop)
            return 1;
        else
            return 0;
    }


    void
    push(stack s,int x)
    {
        if(!isEmpty(s))
        s->elem[++s->top] = x;
    }

    int
    pop(stack s)
    {
        if(!isEmpty(s))
        int e;
        e = s->elem[s->top--];
        return e;
    }


    int main(int argc, char const *argv[]) {
    #ifndef _OJ_  //ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
    #endif

        int i, n, x;
        stack s;
        s = creat_list(s);
        scanf("%d", &n);
        for(i = 0;i < n; i++) {
        scanf("%d", &x);
        push(s,x);
         }

         for(i = 0;i < n; i++) {
         printf("%d ", pop(s));
          }

        return 0;
    }

  • 相关阅读:
    二叉搜索树
    【树】List Leaves
    模板——dijkstra单源最短路
    余数求和——除法分块
    倍增——ST表
    线段树——内存池
    线段树——模板
    洛谷 P1498 南蛮图腾
    洛谷 P2199 最后的迷宫
    洛谷 P1495 中国剩余定理
  • 原文地址:https://www.cnblogs.com/airfand/p/4918662.html
Copyright © 2011-2022 走看看