2015-11-19 163 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,你避免(自动)综合实例变量,这些变量将不被使用。