美文网首页
表达式树

表达式树

作者: Re丶Allen | 来源:发表于2018-03-17 20:23 被阅读0次

表达式树基础知识

表达式树是一类树,基本结构是所有的叶节点为操作树,非叶节点为操作符。如下图所示:


image.png
struct TreeNode
{
    char data;
    TreeNode *left;
    TreeNode *right;
    TreeNode(char inData): data(inData), left(nullptr), right(nullptr) {}
};

//true-操作符,false-操作数
bool isOperator(char inCh)
{
    if (inCh >= 'a' && inCh <= 'z') {
        return false;   
    }
    return true;
}


TreeNode *BuildExpressionTree(const char *inExpression)
{
    if (inExpression == nullptr || *inExpression == '\0') {
        return nullptr;
    }
    const char *cycleIter = inExpression;
    stack<TreeNode *> treeStack;
    while (*cycleIter != '\0') {
        if (!isOperator(*cycleIter)) {
            TreeNode *newNode = new TreeNode(*cycleIter);
            treeStack.push(newNode);
        }
        else {
            TreeNode *newNode = new TreeNode(*cycleIter);
            newNode->right = treeStack.top(); treeStack.pop();
            newNode->left = treeStack.top(); treeStack.pop();
            treeStack.push(newNode);
        }
        ++cycleIter;
    }
    return treeStack.top();
}

相关文章

  • [二叉树] 表达式树

    将中缀表达式转换成表达式树 最快捷的方法是先找到表达式树的根元素, 以下面的这个中缀表达式为例 为了找到表达式树的...

  • 表达式树

    表达式树中缀表达式转换为后缀表达式后缀表达式总结

  • 构建表达式树使用后缀表达式构建

  • C# 表达式树及其应用 (Expression 类)

    目的:什么是表达式树?表达式能用来做什么? 一、什么是表达式树 官方解释:中文: 提供一种基类,表示表达式树节点的...

  • 表达式树

    表达式树基础知识 表达式树是一类树,基本结构是所有的叶节点为操作树,非叶节点为操作符。如下图所示:

  • ef core中对缓存并发写的处理(部分)

    结论: 加锁 如何加锁? ef core 为了性能, 需要缓存大量的表达式树(Expression) 和 表达式...

  • 二叉树的应用----表达式树

    文章目录 何为表达式树 表达式树实现 作为二叉树的一个应用,这里就用二叉树这种数据结构来实现~ 这里有一个重要的知...

  • Lambda表达式

    Lambda表达式简介: MSDN定义:Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数。 介...

  • 前端训练营第三周学习总结

    表达式 Expression Grammar-Tree vs Priority:运算符的优先级由表达式生成树来实现...

  • 简单数据结构(一) 树

    了解树在文件系统里的应用 计算算术表达式的值,如中缀表达式等 树是如何实现以O(logN)的平均时间进行查找操作,...

网友评论

      本文标题:表达式树

      本文链接:https://www.haomeiwen.com/subject/bctsqftx.html