zoukankan      html  css  js  c++  java
  • C语言 简单的栈

    //简单的栈
    
    #include<stdio.h>
    #include<stdlib.h>
    
    //栈的介绍:栈先进后出,一般用于将数据逆序输出
    //栈一般只有四种方法--进栈,出栈,清空,判断栈是否为空
    
    //定义栈的结构
    
    #define datatype int//定义栈内数据类型
    #define N 10//定义数组的大小
    struct easystacknode{
        int top;//栈顶位置
        datatype data[N];
    };
    
    typedef struct easystacknode EStack;
    
    //初始化栈
    EStack selfstack = { -1, { 0 } };
    
    //判断栈是否为空
    int isempty();
    //进栈
    int push(datatype num);
    //出栈
    int pop();
    //清空
    void setempty();
    
    void main(){
        //练习:十进制转换成二进制
        int m = 100;
        while (m!=0){
            //进栈
            push(m % 2);
            m = m / 2;
        }
        //打印出对应的二进制数据
        while (!isempty()){//直到栈为空时跳出循环
            printf("%d", pop());
        }
        printf("
    ");
        system("pause");
    }
    
    //判断栈是否为空1,1为空,0为非空
    int isempty(){
        if (selfstack.top==-1)//表示栈里一个元素也没有
        {
            return 1;
        }
        else{
            return 0;
        }
    }
    
    //进栈
    int push(datatype num){
        //先判断栈是否溢出
        if (selfstack.top==N-1)
        {
            //栈已满
            return 1;
        }
        else{
            selfstack.top += 1;//栈顶坐标+1
            selfstack.data[selfstack.top] = num;
            return 0;
        }
    }
    
    //出栈
    int pop(){
        //判断栈是否为空
        if (isempty())
        {
            return -1;
        }
        else{
            selfstack.top -= 1;//栈顶坐标-1
            return selfstack.data[selfstack.top + 1];
        }
    }
    
    //清空
    void setempty(){
        selfstack.top=-1;//栈顶坐标置为-1
    }

    总结:数组栈容量有限制,不可以无限大

  • 相关阅读:
    B树,B+树比较
    Kafka、RabbitMQ、RocketMQ 全方位对比
    ElasticSearch 笔记
    AtomicReference实现单例模式
    Netty 核心组件笔记
    Netty Reactor 线程模型笔记
    urldecode和urlencode相互转换
    python字符格式问题SyntaxError: Non-UTF-8 code starting with 'xe4'
    百度文字识别获取access token
    Python中MD5加密
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5227750.html
Copyright © 2011-2022 走看看