电池及其应用

更新时间:2019-09-22 10:24点击数:
一(十进制数)
nTemp =(int)decimalNumber%8;
//将nNumber稍微放在pNumberStack堆栈上
推(pNumberStack,nTemp);
decimalNumber = decimalNumber / 8;
nCount = CountOfStack(numberStack); //元素的数量也是位数

IsEmptyStack(numberStack))
//堆叠numberStack堆栈中的元素,并为nTemp代码分配一个小值
Pop(pNumberStack,nTemp);
octNumber + =(nTemp * pow(10。
0,-nCount));;
//销毁堆栈号
DestroyStack(numberStack);
//返回转换后的八进制数
返回(int)octNumber;
中缀和后缀转换和计算
1)
2个表达式
中缀:类似于人类使用的(2 + 3 * 5)的表达式,在数字的中间有一个算术符号。
计算需要注意优先级,方括号,并且运算符的实际顺序通常与表达式的顺序不匹配,因此波兰科学家有后缀表达式将运算符置于两个操作数之后它建议。
后缀表达式没有括号,运算符优先级没有区别。计算过程完全遵循运算符出现的顺序。整个计算过程可以通过一次扫描完成。
2)
转换规则和想法将固定表达式转换为后缀表达式
堆栈可用于将中缀表达式转换为后缀表达式。
后缀表达式也可以实现。
这主要实现了一个困难的中缀到后缀转换。
将固定算术表达式转换为相应的后缀算术表达式的规则是将每个运算符移动到两个操作数并删除所有括号。
要正确执行转换,您需要建立一个运算符堆栈并在堆栈底部存储一个特殊运算符,假设运算符的优先级较低。该堆栈用于存储扫描的插入表达式。将运算符放在后缀表达式中,等待两个操作数放在后缀表达式中,然后展开并写入后缀表达式。
转换过程如下:
转换过程如下:从开始到结束扫描中缀表达式,如果找到数字则直接写入后缀表达式,如果找到堆栈的顶部元素和运算符,则比较运算符优先级。优先级高于堆栈的顶部元素表示尚未在后缀表达式中输入最后一个操作员操作对象。操作符临时保存在操作员堆栈中,下一个操作对象必须写入后缀表达式。如果找到的运算符的优先级小于或等于堆栈的上层元素的优先级,则表示上层运算符的两个操作数在后缀表达式中描述。显示堆栈的顶部元素,必须在表达式中进行描述。比较并处理堆栈的新顶部元素,直到顶部元素的优先级低于当前挂起的运算符的优先级,然后执行操作。
按照前面的过程,扫描到中缀表达式的末尾,将剩余的操作符留在堆栈上,然后编写后缀表达式。
(对于堆栈中的直接左括号,右括号会导致左括号和右括号中的运算符被取消堆叠。)
后缀评估
后缀表达式的评估还需要一个堆栈,其元素类型是操作数类型。该堆栈以后缀表达式,计算过程的中间结果和后续结果存储操作数。
计算过程如下:如果找到操作数,则扫描后缀表达式并将其推入堆栈。如果找到操作符,则显示两个操作数进行计算,然后将结果压入堆栈。必须完成扫描并且必须保存堆栈。
以上是常见电池应用的概述。