2017-10-21 68 views
0

我在C#中製作了一個功能非遞歸AVL樹。該節點看起來像這樣:將C#(AVL樹節點)中的類轉換爲C

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;

我用它來跟蹤樹根。

+0

首先給結構一個名字(或者在'struct'關鍵字後加一個標籤,或者''typedef'結構體)。然後聲明一個叫做_root的指針並將它初始化爲NULL。 – user3386109

回答

2

你的結構應該是(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」文件中。