`

Pocket Gems - Ternary Expression to Binary Tree

 
阅读更多

I came across this problem that has Ternary expression (a?b:c) and needs the ternary expression to be converted into a Binary tree structure.

     a?b:c 

       a
      / \
     b   c

  a?b?c:d:e

     a
    / \
   b   e
  / \
 c   d
public TreeNode convertToBT (char[] values) {
    TreeNode root = new TreeNode(values[0]);
    TreeNode n = root;
    Stack<TreeNode> a =  new Stack<TreeNode>();
    for (int i = 1; i < values.length; i += 2) {
        if (values[i] == '?') {
            n.left = new TreeNode (values[i + 1]);
            a.add(n);
            n = n.left;

        }
        else if (values[i] == ':') {
            n = a.pop();
            while (n.right != null) {
                n = a.pop();
            }             
            n.right = new TreeNode (values[i + 1]);
            a.add(n);
            n = n.right;
        }
    }
    return root;
}

 

Reference:

http://stackoverflow.com/questions/28487831/how-to-convert-a-ternary-expression-to-a-binary-tree-structure

分享到:
评论

相关推荐

    GEMS-Active X Register.rar

    《深入理解GEMS-Active X Register在罗克韦尔PLC工艺中的应用》 在工业自动化领域,PLC(可编程逻辑控制器)扮演着至关重要的角色,尤其在罗克韦尔自动化系统中,其强大的功能和灵活性使得它广泛应用于各种生产线和...

    gems-release-2.0

    在标题“gems-release-2.0”中,我们看到的是GEMS的一个特定版本——2.0,这代表了该软件的一次重大更新,可能包含了性能提升、新功能的添加以及对已有功能的优化。 Simics是一款由Intel开发的全系统仿真平台,它...

    GEMS-Ubuntu.pdf

    ### GEMS-Simics在Ubuntu中的安装指南 #### 一、引言 本文档由Aleksandar Vitorovic编写,旨在为用户介绍如何在Ubuntu 7.10 x86环境中安装并熟悉GEMS/Simics环境。文档强调了其非官方性质,并指出它作为用户贡献...

    PyPI 官网下载 | blaseball-game-gems-0.3.0.tar.gz

    标题中的“PyPI 官网下载 | blaseball-game-gems-0.3.0.tar.gz”表明这是一个从Python Package Index(PyPI)官方源下载的压缩包,名为"blaseball-game-gems",版本号为0.3.0,格式为tar.gz。PyPI是Python社区广泛...

    Gpu Gems - 2

    《GPU Gems 2》是NVIDIA公司推出的一本关于图形处理器(GPU)技术的专业书籍,其在图形计算领域具有极高的权威性和指导性。这本书旨在深入探讨GPU的潜力,为游戏开发、影视特效、科学研究等多个领域的专业人士提供...

    apa-gems-1.1-sources.jar

    官方版本,亲测可用

    apa-gems-1.0-sources.jar

    官方版本,亲测可用

    Lua Programming Gems - Luiz Henrique de Figueiredo.zip

    《Lua Programming Gems》是由Luiz Henrique de Figueiredo编著的一本关于Lua编程语言的精华集,这本书深入探讨了Lua的各个方面,是学习和理解Lua编程的宝贵资源。Lua是一种轻量级、高性能、小巧且易于嵌入的脚本...

    GEMS-Synth:混合生成合成器

    【GEMS-Synth:混合生成合成器】 GEMS-Synth 是一个创新的音乐制作工具,专为音乐制作人和电子音乐爱好者设计。它融合了多种合成技术,为用户提供了丰富的声音设计可能性。这个混合生成合成器的名字“GEMS”可能...

    apa-gems-1.1.jar

    jar包,亲测可用

    apa-gems-1.0.jar

    jar包,亲测可用

    GEMS-TAB.github.io:网站

    GEMS-TAB.github.io 是一个在GitHub Pages上托管的静态网站。GitHub Pages是GitHub提供的一个服务,允许用户免费托管静态网页,通常用于个人博客、项目展示或者开源软件的文档。这个特定的项目,GEMS-TAB,可能是...

    homebridge-gems-bulb:GEMS智能LED灯泡的Homebridge插件

    安装可以通过npm安装homebridge-gems-bulb。 $ sudo npm install -g homebridge-gems-bulb --unsafe-perm组态您首先需要找到灯泡的MAC地址。 每个指示灯将具有唯一的MAC地址,并且可能具有唯一的名称。 灯泡必须与...

    GPU-GEMS-3D-Fluid-Simulation:Unity中的3D流体模拟

    GPU-GEMS-3D-流体模拟该项目基于GPU Gems 3D流体仿真文章。 本文介绍了一种用于计算和渲染3D流体模拟的方法。 设计用于渲染的方法是为了将流体模拟最好地集成到场景中,并使它与其他场景组件进行交互。 但是,我使用...

    the-ultimate-guide-to-ruby-timeouts, 流行 ruby Gems的超时.zip

    the-ultimate-guide-to-ruby-timeouts, 流行 ruby Gems的超时 ruby-超时的终极指南没有反应的服务可能比向下的服务更差。 如果不正确处理,它可以捆绑整个系统。 所有网络请求超时。 下面是为流行 ruby Gems 添加...

    hello-ruby-gems-happy-birthday:宝石说生日快乐

    标题中的“hello-ruby-gems-happy-birthday”是一个基于Ruby的Gem项目,它的主要功能是祝贺生日。这个Gem的名字“happy-birthday”表明它是一个简单的程序,可以在命令行上运行,用来庆祝生日。 Ruby是一种面向对象...

    gems-bayesian:贝叶斯概率过滤器的 C# 版本,可用于将文本分类为好或坏的集合

    概述gems-bayesian 是一个用于贝叶斯概率过滤器的 C# 库,可用于将文本分类为好或坏的集合。什么是贝叶斯过滤? 贝叶斯过滤是一种流行的统计技术,用于过滤电子邮件以检测垃圾邮件。 如果您将一组电子邮件分成两个...

    GPU Gems 1-3

    《GPU Gems 1-3》是一套集合了GPU编程领域先进技术与实践经验的系列书籍,包含了丰富的图形处理单元(GPU)编程知识。这个压缩包包含了htm格式的高清文字版,适合程序员们在线阅读或离线查阅。标签“GPU Gems1 Gems2...

Global site tag (gtag.js) - Google Analytics