2015-11-19 168 views
1

使用別名在變量名我有一個名爲節點在的ObjectiveC

@interface Node : NSObject 
{ 
    Node* _prev; 
    Node* _next; 
    id _data; 
} 

類,我想使用雙向鏈表二叉搜索樹

但在二叉搜索樹,我想改變_prev_next使用_Left_right

我不知道我是否可以使用別名_Left for _prev and _right for _next這樣我的Node類可以用在雙鏈表二進制搜索樹

任何建議,將不勝感激!

回答

0

您應該將這些字段定義爲屬性,而不是實例變量。

@interface Node : NSObject 
    @property (nonatomic, strong) Node *prev; 
    @property (nonatomic, strong) Node *next; 
    @property (nonatomic, strong) Node *left; 
    @property (nonatomic, strong) Node *right; 

    @property (nonatomic, strong) id data; 
@end 

然後,在您的實施,實現對左邊和右邊的自定義getter和setter,像這樣......

- (Node *)left { 
    return _prev; 
} 

- (void)setLeft:(Node *)left { 
    _prev = left; 
} 

- (Node *)right { 
    return _next; 
} 

- (void)setRight:(Node *)right { 
    _next = right; 
} 

通過定義爲左,右兩個getter和setter,你避免(自動)綜合實例變量,這些變量將不被使用。