假设我们已经有了一棵二叉树的层序遍历结果。如何构建一棵二叉树,使其中的数据被正确地放置在相应的位置上?
请注意,我不是试图从给定的遍历结果中绘制树形图,而是通过实际编写C代码,从一个数组中读取遍历数据,然后将其填充到二叉树中。
例如:
令a[] = {A, B, C, D, E, F, G}; // 数组中的遍历结果
那么层序遍历的二叉树将如下所示:
假设有一个树节点结构如下所示:
现在我正在尝试读取a[]的值并编写此树,使其看起来像图表。有许多层序遍历的示例,但找不到任何与二叉树构造实际编码相关的内容。这有点像“遍历”的反向操作。
另外请注意,这不是作业,尽管如果更多人以这种方式注意到它,我不介意标记它。 :)
请注意,我不是试图从给定的遍历结果中绘制树形图,而是通过实际编写C代码,从一个数组中读取遍历数据,然后将其填充到二叉树中。
例如:
令a[] = {A, B, C, D, E, F, G}; // 数组中的遍历结果
那么层序遍历的二叉树将如下所示:
A
/ \
B C
/ \ / \
D E F G
假设有一个树节点结构如下所示:
typedef struct node
{
char data;
struct node* left;
struct node* right;
}tree;
现在我正在尝试读取a[]的值并编写此树,使其看起来像图表。有许多层序遍历的示例,但找不到任何与二叉树构造实际编码相关的内容。这有点像“遍历”的反向操作。
另外请注意,这不是作业,尽管如果更多人以这种方式注意到它,我不介意标记它。 :)