论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:25   1614   0

栈:是一种思想,实现将数据以先进后出(FILO)方式操作
1、模型:#口
2数据类型:
//宏:
#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 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP