有没有办法在目标 c 中创建链表。我是一个新手,到目前为止我已经在苹果开发者指南中进行了研究,没有为链表预定义的任何函数。双向链表与objective-c中的链表相同吗?
请帮忙。
有没有办法在目标 c 中创建链表。我是一个新手,到目前为止我已经在苹果开发者指南中进行了研究,没有为链表预定义的任何函数。双向链表与objective-c中的链表相同吗?
请帮忙。
首先要记住的是,Objective-C就是C,它还有很多。
接下来是对象作为(本质上)指针(编译器知道指向对象)传递。
所以你当然可以创建和管理你自己的链表,你可以用结构或对象来做。使用对象(可能是首选),只需@property
在类中为“下一个”对象创建一个,然后随意使用它。类似地,对于双向链表,有一个@property
for previous。
反对在 Objective-C 中关注点赞列表的最佳论据之一可能是,通常你手头有 Cocoa 框架,并且有如此丰富的特性,我们过去必须用链表来实现自己。例如,概念上简单的 NSMutableArray 或 NSDictionary 是构建良好的组件的绝佳示例,它们通常使我们不再需要链表。更进一步,核心数据等......
一个简单的抽象链表类可能如下所示:
@interface LinkedNode : NSObject
@property (nonatomic, strong) id nextNode;
@end
然后您可以按预期使用它:
id currentNode = myFirstNode;
do {
[currentNode someMessage];
}
while(currentNode = currentNode.nextNode);
请记住,这实际上并不比使用结构“更好”。对于“更好”的业务,可以转移到 Cocoa 类并在“更高级别”上实现,可以这么说。
请检查我在目标 C 中实现的一些常见数据结构,如链表、堆栈、二叉搜索树。 https://github.com/udaypatial/Data-Structures-in-Objective-C