我在C#中建立了一个函数型非递归AVL树。节点如下所示:
class AvlNode
{
public int data;
public int balance;
public AvlNode left;
public AvlNode right;
public AvlNode parent;
}static AvlNode _root = null;
公众走开,加上指针。
struct
{
int data;
int balance;
struct AvlNode *left;
struct AvlNode *right;
struct AvlNode *parent;
}
但我该怎么处理
static AvlNode _root = null;
?我用它来追踪树根。
最佳答案
您的结构应该是(AvlNode作为结构的名称)
struct AvlNode
{
int data;
int balance;
struct AvlNode *left;
struct AvlNode *right;
struct AvlNode *parent;
}
如果您有多个翻译单元,请不要使用
static
(如果整个代码都在一个.c文件中,则可以)。对多个翻译单元使用
extern
。在标题中声明
extern struct AvlNode *root;
。struct AvlNode *root = NULL;
在您的“.c”文件中。