逐个字符读取中序表达式,
若为字母则直接添加到后续表达式中。
若为'('则压入堆栈。
若为')'则不断从堆栈中弹出运算符,直到遇到'('为止。
若为+,-,*,/,%中的某个运算符时,若运算符优先级高于栈顶运算符优先级,则将其直接压入堆栈,否则不断出栈运算符,直到满足该运算符优先级高于栈顶运算符优先级或者堆栈为空时,再将该运算符压入堆栈。
若表达式已经读取完,堆栈中还有运算符,则不断出栈运算符即可。
根据自己的理解又描述了一遍,明天考线性表的内容,今天复习的时候就把这个内容给忘掉了。看来以后需要记点笔记啊,或者经常用自己的话把这些算法写成博客。
若为字母则直接添加到后续表达式中。
若为'('则压入堆栈。
若为')'则不断从堆栈中弹出运算符,直到遇到'('为止。
若为+,-,*,/,%中的某个运算符时,若运算符优先级高于栈顶运算符优先级,则将其直接压入堆栈,否则不断出栈运算符,直到满足该运算符优先级高于栈顶运算符优先级或者堆栈为空时,再将该运算符压入堆栈。
若表达式已经读取完,堆栈中还有运算符,则不断出栈运算符即可。
根据自己的理解又描述了一遍,明天考线性表的内容,今天复习的时候就把这个内容给忘掉了。看来以后需要记点笔记啊,或者经常用自己的话把这些算法写成博客。