我想制作一个这样的二叉树,如下面C语言中给出的图像所示。
使二元树具有两个节点的结构就是这个 -
(#200) Subject does not have permission to post videos on this target
但是为了制作一个有多个孩子的树,结构需要每次都改变,那么有没有办法让结构每次都改变?
答案 0 :(得分:1)
您可以像这样定义一个节点:
select to_char(date,'Mon') as Month,
extract(year from date) as Year,
case when type= 1 then sum("subtotal") END as sales,
case when type= 2 then sum("subtotal") END as buys
from table
group by 1
然后,
以这种方式访问第一个孩子: myNode-> firstChild
第二个孩子: myNode-> firstChild-> nextSibling
第N个孩子: myNode-> firstChild-> nextSibling-> ...-> nextSibling
这将涉及通过子节点时的空检查和迭代。
答案 1 :(得分:1)
在C中,您无法动态更改结构。但你想要的是(每个节点中可变数量的孩子)可以稍微迂回的方式实现。如果要将左侧和右侧节点保存为与其他子节点不同的实体,则可以使用包含该节点的所有其他子节点的链接列表的二叉树:
struct TreeNode
{
int data;
ChildNode *firstChild;
TreeNode *left;
TreeNode *right;
};
struct ChildNode
{
int data;
ChildNode *next;
};