将算法表达式转换为二叉树c#

时间:2016-02-05 00:51:55

标签: c# algorithm binary-tree

给你一些上下文我想要实现的是一个算法公式生成器,它生成变量的值(例如[a],[b],[c]),对它们应用规则和范围,然后从给定的公式处理答案([e])。

大部分内容已经有效,但我仍然坚持将算法表达式转换为二叉树。我正在读取输入字段中的值并分解各个字符(括号除外):

字符串(a + b)/(c / d) - > | a | | + | | b | | c | | / | | d | | / |

每个节点都使用id保存(每个字符自动递增1)并保存在List中。它们目前正在使用正确的id创建,以实现有序遍历..但对于我的生活,我只是无法理解如何构建树。

这是我开始的方式:

public void GenerateAlgoTree()
{
    // get root node (should be the last one in the list)
    root = nodeList[nodeList.Count-1];

    // iterate through the list to find its children and set them as left and right
    List<Node> tempList = new List<Node>();
    foreach (Node n in nodeList)
    {
        tempList.Add(n);
    }

    tempList.Remove(root);
    List<Node> currentNodes = new List<Node>();
    currentNodes.Add(root);
    List<Node> nextNodes = new List<Node>();

    while (tempList.Count > 0)
    {
        foreach (Node cN in currentNodes)
        {
         //recursive check for null left node??????

非常感谢任何帮助!!

0 个答案:

没有答案