给你一些上下文我想要实现的是一个算法公式生成器,它生成变量的值(例如[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??????
非常感谢任何帮助!!