将 class 从 C#(AVL 树节点)转换为 C
Converting a class from C# (AVL tree node) to C
我用 C# 制作了一个功能性非递归 AVL 树。该节点如下所示:
class AvlNode
{
public int data;
public int balance;
public AvlNode left;
public AvlNode right;
public AvlNode parent;
}static AvlNode _root = null;
public消失了,添加指针。
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
。
在您的 header 中声明 extern struct AvlNode *root;
。
struct AvlNode *root = NULL;
在您的“.c”文件中。
我用 C# 制作了一个功能性非递归 AVL 树。该节点如下所示:
class AvlNode
{
public int data;
public int balance;
public AvlNode left;
public AvlNode right;
public AvlNode parent;
}static AvlNode _root = null;
public消失了,添加指针。
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
。
在您的 header 中声明 extern struct AvlNode *root;
。
struct AvlNode *root = NULL;
在您的“.c”文件中。