我正在阅读一篇关于联合的文章,我了解到联合的大小取决于最大的变量大小,并且变量共享相同的内存。所以这个概念对我来说很清楚,但在文章中作者说当二叉树有两个指针指向另外两个孩子时,对二叉树使用“联合”是值得的。“什么是联合的应用?”在我的脑海中出现了一个问题。那篇文章的部分,联合内部指针的可能解释是什么?链接已在下面给出。
https://www.geeksforgeeks.org/union-c/
所以,就是这样。有谁能帮帮我吗?
在文章中,作者说当二叉树有两个指针指向另外两个孩子时,对二叉树使用“联合”是值得的……联合内部指针的可能解释是什么?
我相信你在谈论这个代码片段:
struct NODE {
bool is_leaf;
union {
struct
{
struct NODE* left;
struct NODE* right;
} internal;
double data;
} info;
};
Run Code Online (Sandbox Code Playgroud)
你在这里误解了作者的意图。他们使用联合来实现树中两种不同类型的节点:具有左右指针的内部节点和具有数据的叶节点。这个联合在 astruct和 a之间共享内存double。它不在左右指针之间共享内存。