gpt4 book ai didi

c - 如何找到算术表达式中的第一个运算符?

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:25 24 4
gpt4 key购买 nike

我有这个算术表达式:E=((c+(a*b))-(c+(d*e)))
我需要找到第一个放入具有递归函数的二叉树的运算符

typedef struct node  { char info;   struct node*left, *right; } TNode, *Tree;
Tree fBuild ( char *E) // recursive function
Tree aux = (Tree)malloc (sizeof(TNode)); //tree in recursive function

首先我需要找到第一个运算符,对于这个例子是 '-',以创建第一个节点,然后我使用 aux->left 的递归函数创建E1=(c+(a*b))aux->right E2=(c+(d*e))

例子

          -

/ \
/ \
+ +
/ \ / \
c * c *
/ \ / \
a b d e

如何计算括号或其他算法以找到 C 代码中的第一个运算符?

最佳答案

假设这是一个编程练习,那么标准工具包 lecyacc 和标准算法如 Shunting yard algorithm不可用。

问题询问如何找到顶部的减号。这样做只是计算括号。每个开括号加一,每个闭括号减一。在此示例中,- 是唯一计数为 1 的运算符。在 C 中,假设您有一个字符串 s。在 C 语言中,这将是一个遍历字符串字符的简单循环。

这不是构建树的最有效方式。您可以一次扫描输入一个字符,构建部分树,并跟踪深度。

关于c - 如何找到算术表达式中的第一个运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23698946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com