前缀表达式转中缀表达式是比较简单的。

实现代码

实现函数代码如下:

;求得运算符号
(defun opsymbol(x)(cond((equal x 'setq) '=) ;给定的lisp函数。((equal x 'plus) '+)((equal x 'difference) '-)((equal x 'times) '*)((equal x 'quotient) '/)((equal x 'remainder) '\\)((equal x 'expt) '^)(t x))
);前缀表达式转中缀表达式
(defun prefix_to_infix(L)(cond((null L) ())((atom L) L) ;简单情况。(t(list   (prefix_to_infix (cadr L)) ;翻译第一部分(opsymbol (car L))            ;查运算符号(prefix_to_infix (caddr L))   ;翻译其余部分)))
)   

在portacle中添加定义

直接将代码复制到窗口中。如下图所示。

程序运行效果

依次输入命令

(prefix_to_infix '(times a b))

(prefix_to_infix '(TIMES PRINCIPAL (EXPT (PLUS 1.0 INTEREST) YEARS)))

(prefix_to_infix '(SETQ TOTAL (TIMES PRINCIPAL (EXPT (PLUS 1.0 INTEREST) YEARS))))

运行结果如下:

前缀表达式转换为中缀表达式(lisp实现)相关推荐

  1. java中缀表达式转后缀表达式_数据结构Java实现06----中缀表达式转换为后缀表达式...

    本文主要内容: 表达式的三种形式 中缀表达式与后缀表达式转换算法 一.表达式的三种形式: 中缀表达式:运算符放在两个运算对象中间,如:(2+1)*3.我们从小做数学题时,一直使用的就是中缀表达式. 后 ...

  2. 【数据结构与算法】【12】前缀表达式、中缀表达式、后缀表达式

    什么是前缀表达式.中缀表达式.后缀表达式 前缀表达式.中缀表达式.后缀表达式,是通过树来存储和计算表达式的三种不同方式 以如下公式为例 (a+(b−c))∗d( a+(b-c) )*d(a+(b−c) ...

  3. 数据结构 - 拓展突破(C++实现中缀表达式转前缀表达式,中缀表达式转后缀表达式,前缀表达式求值,中缀表达式求值)

    文章目录 1. C++中缀表达式转后缀表达式 2. C++中缀表达式转前缀表达式 3. C++后缀表达式求值 4. C++前缀表达式求值 1. C++中缀表达式转后缀表达式 输入中缀表达式样例: 2+ ...

  4. 逆波兰表达式中缀表达式转换为后缀表达式

    中缀表达式转换为后缀表达式 思路分析 代码实现 package com.atguigu.stack;import javax.swing.plaf.nimbus.State; import java. ...

  5. 表达式计算:后缀表达式求解 以及 中缀表达式转换为后缀表达式

    后缀表达式 后缀表达式格式: 不包含括号,运算符放在两个运算对象的后面. 后缀表达式运算规则: (从左向右) 所有计算均按运算符出现的顺序(不再考虑乘除优先于加减这种运算符的优先规则),严格从左向右进 ...

  6. 利用stack结构,将中缀表达式转换为后缀表达式并求值的算法实现

    #!/usr/bin/env python # -*- coding: utf-8 -*-# learn <<Problem Solving with Algorithms and Dat ...

  7. swust oj 1042: 中缀表达式转换为后缀表达式

    题目描述 中缀表达式是一个通用的算术或逻辑公式表示方法,操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法.后缀表达式不包含括号,运算符放在两个运算对象的后面,所 ...

  8. 后缀表达式转中缀表达式

    中缀转后缀:中缀表达式转换为后缀表达式 大概意思就是:遇到数字就输出,遇到符号(包括括号)就压入栈,如果当前符号优先级比栈顶的低,就把栈顶的符号输出,平级的也都输出,到左括号(优先级最高为止),然后当 ...

  9. 后缀表达式、中缀表达式

    一.后缀表达式 1.理解 对于算术表达式来说,其基本规则是:先乘除,后加减:先括号内,再括号外:相同优先级情况下从左到右.比如,5 + 6 / 2 - 3 * 4 就是一个算术表达式,它的正确理解应该 ...

最新文章

  1. jenkins搭建cc++自动化构建
  2. 资源 | UC Berkeley CS 294深度强化学习课程(附视频、学习资料)
  3. MQTT数据传输之TCP数据流程
  4. C# 时间函数(几个常用时间,程序运行计时,页面运行计时)
  5. 应用程序服务器迁移:从JBoss EE5到Wildfly EE7
  6. 转载:ListBox的SelectedValue和SelectedItem的区别
  7. (98)FPGA localparam 与parameter区别?
  8. python有道-如何用pythonquot;优雅的”调用有道翻译?
  9. python:python对象属性及属性函数property()
  10. 寻找春天nbsp;九宫格日记-2014.04.26
  11. 解答篇:金蝶K3wise截取活动窗口
  12. python提取句子_关于python:从句子中提取介词短语
  13. 【c++11并不遥远】使xcode工程支持c++11特性
  14. Appium+python自动化23-Android夜神模拟器
  15. 约克大学计算机语言班,约克大学语言班申请
  16. 亮化工程改善城市夜景有什么重要意义
  17. 优化vue打包chunk-vendors.js 过大
  18. 微软语言包实现汉字转拼音
  19. Criteria和DetachedCriteria
  20. office右键没有新建word,Visio等解决办法

热门文章

  1. 免费Web Service接口
  2. 将一个对象里所有的空值属性设置成null
  3. 【Web前端】设计模式、闭包
  4. 互联网公司招聘公关经理
  5. Mac OS X: 共享iPhoto图片
  6. 首次面试JAVA实习生遇到的面试题
  7. tp框架 (5以上都行)+ 微信公众号授权
  8. i技术会 | 爱奇艺效果广告探索与实践
  9. 初中计算机新课标培训心得,初中数学新课标学习心得体会(精选3篇)
  10. OpenNI(开放自然交互)是一个多语言,跨平台的框架