如何使用 lua 构建中缀 TO 前缀函数

Posted

技术标签:

【中文标题】如何使用 lua 构建中缀 TO 前缀函数【英文标题】:How to build a infix TO prefix function using lua 【发布时间】:2017-06-28 07:58:41 【问题描述】:

我想创建一个 infixTopostfix 函数,它将接受一个中缀表达式并将其转换为前缀表达式。我想知道是否有任何内置前缀来中缀函数或运算符可以帮助我?

【问题讨论】:

将中缀转换为前缀表达式是什么意思?你想操纵字符串吗? Lua中没有内置这样的东西。但是很可能有一些代码可以在线获得,或者您自己编写。 是否有可用于 lua 的内置堆栈 当然 Lua 有一个堆栈...请使用 google 解决这些琐碎的问题。请阅读How to Ask 并改进您的问题。否则它将被否决和/或关闭。 【参考方案1】:

问:是否有适用于 Lua 的内置堆栈? A:在 Lua 中实现栈很容易。

local stack = 

local function push(value)
   table.insert(stack, value)
end

local function pop()
   return table.remove(stack)
end

-- Example:
push(42)
push('Yes, Lua has a stack')
print(pop())
print(pop())

--  Output:
-- Yes, Lua has a stack
-- 42

只是不要将nil 推入堆栈。

【讨论】:

lua中是否有内置堆栈 是的,所有的局部变量都存放在栈中。只需使用递归和局部变量(函数参数也是局部变量)来利用内置堆栈。

以上是关于如何使用 lua 构建中缀 TO 前缀函数的主要内容,如果未能解决你的问题,请参考以下文章

中缀到前缀的程序中的c函数中未返回反转字符串

如何在Lua中使用递归函数来动态构建表而不会在每次调用时覆盖它

如何在程序中将中缀表达式转换为后缀表达式

前缀、中缀、后缀表达式是怎样的?(程序设计)

在 Python 中为中缀表示法添加前缀表示法

中缀到前缀转换方案