zoukankan      html  css  js  c++  java
  • 顺序栈

    #include <iostream>
    using namespace std;
    
    typedef struct stackArr
    {
        int *arr;
        int cap;
        int top;
    }STACK;
    
    STACK* create_stack(int total)
    {
        STACK* stack = new(STACK);
        stack->arr =new int[total];
        stack->cap = total;
        stack->top = 0;
        return stack;
    }
    
    void stack_destroy(STACK* stack)
    {
        delete(stack->arr);
        delete(stack);
    }
    
    void stack_push(STACK* stack , int data)
    {
        stack->arr[stack->top++] = data;
    }
    
    int stack_pop(STACK* stack)
    {
        return stack->arr[--stack->top];
    }
    
    void stack_clear(STACK* stack)
    {
        stack->top = 0;
    }
    
    int stack_size(STACK* stack)
    {
        return stack->top;
    }
    
    bool stack_empty(STACK* stack)
    {
        if(0 !=stack->top)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    
    bool stack_full(STACK* stack)
    {
        if(stack->cap==stack->top)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    
    int main()
    {
        STACK* stack =create_stack(10);
        int i=0;
        while( !stack_full(stack))
        {
            stack_push(stack, i++);
        }
    
        while( !stack_empty(stack))
        {
            cout<<stack_pop(stack)<<endl;
        }
        stack_destroy(stack);
        return 0;
    }

    关注公众号 海量干货等你
  • 相关阅读:
    20151019
    20151013
    20150810
    20150626
    20150625
    20150530
    HTML特殊字符大全
    label标签跳出循环
    IIS 负载均衡
    .NET代码执行效率优化
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734513.html
Copyright © 2011-2022 走看看