- 7
- 0
- 约7.6千字
- 约 8页
- 2017-08-20 发布于北京
- 举报
波兰式转换为逆波兰式(中缀表达式转换为后缀表达式)
逆 HYPERLINK /view/21934.htm \t _blank 波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫 HYPERLINK /view/339689.htm \t _blank 后缀表达式(将运算符写在 HYPERLINK /view/420846.htm \t _blank 操作数之后)
一、定义
一个 HYPERLINK /view/420676.htm \t _blank 表达式E的后缀形式可以如下定义:
(1)如果E是一个 HYPERLINK /view/296689.htm \t _blank 变量或 HYPERLINK /view/346799.htm \t _blank 常量,则E的 HYPERLINK /view/2973716.htm \t _blank 后缀式是E本身。
(2)如果E是E1 op E2形式的 HYPERLINK /view/420676.htm \t _blank 表达式,这里op是如何二元操作符,则E的 HYPERLINK /view/2973716.htm \t _blank 后缀式为E1E2 op,这里E1和E2分别为E1和E2的后缀式。
(3)如果E是(E1)形式的 HYPERLINK /view/420676.htm \t _blank 表达式,则E1的 HYPERLINK /view/2973716.htm \t _blank 后缀式就是E的后缀式。
如:我们平时写a+b,这是中缀表达式,写成 HYPERLINK /view/339689.htm \t _blank 后缀表达式就是:ab+
(a+b)*c-(a+b)/e的 HYPERLINK /view/339689.htm \t _blank 后缀表达式为:
(a+b)*c-(a+b)/e
→((a+b)*c)((a+b)/e)-
→((a+b)c*)((a+b)e/)-
→(ab+c*)(ab+e/)-
→ab+c*ab+e/-
二、算法实现
将一个普通的中序 HYPERLINK /view/420676.htm \t _blank 表达式转换为 HYPERLINK /view/552648.htm \t _blank 逆波兰表达式的一般算法是:
首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为输入逆 HYPERLINK /view/21934.htm \t _blank 波兰式的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不一定非#不可。从中缀式的左端开始取字符,逐序进行如下步骤:
(1)若取出的字符是 HYPERLINK /view/420846.htm \t _blank 操作数,则分析出完整的运算数,该操作数直接送入S2栈
(2)若取出的字符是 HYPERLINK /view/425996.htm \t _blank 运算符,则将该运算符与S1栈栈顶元素比较,如果该 HYPERLINK /view/262524.htm \t _blank 运算符优先级大于S1栈栈顶 HYPERLINK /view/425996.htm \t _blank 运算符优先级,则将该运算符进S1栈,否则,将S1栈的栈顶运算符弹出,送入S2栈中,直至S1栈栈顶运算符低于(不包括等于)该运算符优先级,则将该运算符送入S1栈。
(3)若取出的字符是“(”,则直接送入S1栈栈顶。
(4)若取出的字符是“)”,则将距离S1栈栈顶最近的“(”之间的运算符,逐个 HYPERLINK /view/346791.htm \t _blank 出栈,依次送入S2栈,此时抛弃“(”。
(5)重复上面的1~4步,直至处理完所有的输入字符
(6)若取出的字符是“#”,则将S1栈内所有运算符(不包括“#”),逐个 HYPERLINK /view/346791.htm \t _blank 出栈,依次送入S2栈。
完成以上步骤,S2栈便为逆 HYPERLINK /view/21934.htm \t _blank 波兰式输出结果。不过S2应做一下逆序处理。便可以按照逆 HYPERLINK /view/21934.htm \t _blank 波兰式的计算方法计算了!
三、作用
实现逆 HYPERLINK /view/21934.htm \t _blank 波兰式的算法,难度并不大,但为什么要将看似简单的中序 HYPERLIN
您可能关注的文档
- 有一种美丽,叫奥黛丽赫本.docx
- 有借必有贷,借贷必相等.doc
- 有关恋爱的日语句子.doc
- 有关春的古诗100清晰 (2).docx
- 有关自信与耕耘的演讲稿 (3).doc
- 有意思的象形文字:北是两个人朝相反方向站立字形演变.docx
- 有机肥设备厂家能把肥料讲这么透目前仅此一文.docx
- 有米传媒:移动广告开启精准营销时代.docx
- 有趣的广告词大全.docx
- 服务器硬件知识普及篇.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)