以下是一个简单的示例,演示了如何定义一个树状结构:
@interface TreeNode : NSObject
@property (nonatomic, strong) NSString *value;
@property (nonatomic, strong) NSMutableArray<TreeNode *> *children; // 重点
@end
@implementation TreeNode
- (instancetype)init {
self = [super init];
if (self) {
_children = [NSMutableArray array];
}
return self;
}
@end
在上面的示例中,TreeNode类表示树中的一个节点。每个节点具有一个值(value)以及一个子节点数组(children),用于存储它的子节点。
通过使用这个类,可以创建一个树形结构,其中每个节点都可以包含任意数量的子节点。例如:
// 创建根节点
TreeNode *rootNode = [[TreeNode alloc] init];
rootNode.value = @"Root";
// 创建子节点
TreeNode *childNode1 = [[TreeNode alloc] init];
childNode1.value = @"Child 1";
TreeNode *childNode2 = [[TreeNode alloc] init];
childNode2.value = @"Child 2";
// 将子节点添加到根节点
[rootNode.children addObject:childNode1];
[rootNode.children addObject:childNode2];
通过这种方式,可以构建具有任意层次和结构的树形类。每个节点可以包含自己的子节点,并且可以通过遍历树来访问和操作节点及其属性。
需要注意的是,这只是一个简单的示例,实际应用中可能需要根据具体的需求进行更复杂的设计和实现