我负责创建一个程序,将类似((X+3)*(X+4))
的东西变成二叉树,以及其他一些功能。到目前为止,我已经接受了输入,并将其解析为两个堆栈,一个包含操作数,另一个包含操作符。从Stack创建二叉树?
我所定义的栈只是现在(所以他们只有一个nextnode和char value
。 但是,我似乎有问题,定义了树)将来自堆值代入我的树(因此可能是一个问题。
我的筹码被定义为这样的:
typedef struct node
{
char value;
struct node * nextnode;
} node;
我的树被定义为:
typedef struct tree
{
node * thisNode;
struct tree *right, *left;
} tree;
我不知道日e节点*部分,也许它应该是不同的东西。
我一直在考虑初学者的简单情况2 + 3。在这种情况下,树的根应该是+,左边是2,右边是3.
+
/\
2 3
如何添加栈上的内容到我的树?我一直在使用
root->thisNode = operatorTop;
哪里operatorTop是运营商栈(定义为node * operatorTop
)的顶部, 但即使这样简单的线条似乎试图段错误。
你必须向我们展示了一个完整的程序,段错误。你的数据结构没有任何内在的错误(除了你使用一个char作为int并且你正在typedefing命名的结构,这不完全不正确)。 – nmichaels 2010-11-10 21:58:49
这就是我所问的几乎所有问题,如果有什么内在的错误。我忘了标签,但这是作业,所以我不想/太多/太多的帮助。霍根让我走上正轨,正是这样。 – Blackbinary 2010-11-10 22:01:37