栈:是一种思想,实现将数据以先进后出(FILO)的方式操作

1、模型:#口

3、数据类型:

            //宏

               #define  MAXSIZE  10(宏命名大写)

             //重命名:将int取别名:StackType

               typedef   int   StackType;

               //栈的类型

                 struct stack
        {
        //数据:
                StackType buf[6];       //栈的元素
        //方法
                short top;              //栈顶下标
        };

 3功能:
    1、初始化InitStack
    2、清空栈:ClearStack
    3、出栈:pop
    4、进栈:push
    5、判断栈为满:IsFull
    6、判断栈为空:IsEmpty
    7、取次栈顶
    8、栈的元素个数:StackLength

栈的应用:撤消与恢复,记忆,递归,“高级功能计算”
   高级功能计算器:
     1.中缀表达式  数据 运算符 数据  
        (优点:直观的去表达一个表达式,缺点:不能直观的去表现优先级)
            eg: 1+(2+3*4)-5
     2、后缀:  数据 数据 运算符  
        (缺点:不能直观表达式一个式子  优点:直观表达式优先级)
          中缀转后缀规则:
            1、从左往右遍历
            2、如果是数据,则成为后缀表达式一部分
            3、是运算则判断与栈顶的优先级:
                1、如果是左括号,则直接进栈
                2、如果是右括号,则一直出栈,直到遇到第一个左括号为止。
                3、如果比栈顶的元素的优先级高,则直接进栈。
                4、如果比栈顶元素的优先级低,则一直出栈,直到遇到比它低运算符为止。
            4、重复1-3步骤,直到表达式遍历完成。
           eg:1 2 3 4 * +  + 5 -
     3、后缀进行计算:
            eg:   1 2 3 4 * + + 5 -
            规则:
                1、从左往右遍历
                2、如果遇到数字则进栈,否则取出栈顶和次栈顶进行运算。运算的结果要进栈
                    (栈顶元素:操作数   次栈顶:被操作数 表达式: 被操作数  运算符  操作数)
                3、重复1-2步骤,直到遍历完成。

1、(后期*)宏:是一种替换常量,它不是C语言的标准。是编译器提供的功能。
  作用:是在编译之前(预编译),进行简单的替换。
定义:
    #define  名字  字符串

2、重命名:将已知数据类型重新命名    
  typedef  已知类型 别名;
    
    
0、预编译:编译之前,作检查,宏替换等操作。
    gcc -E 源代码 -o 文件.i
1、编译:将代码翻译成为二进制

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值