有没有办法在目标c中创建链表。我是新手,到目前为止,我已经在苹果开发者指南中进行了研究,没有为链表预定义任何功能。双链表是否与objective-c中的链表相同?
请帮忙。
答案 0 :(得分:3)
首先要记住的是Objective-C C,它还有更多。
接下来就是对象作为(本质上)指针传递(编译器知道指向对象)。
因此,您当然可以创建和管理自己的链接列表,并且可以使用结构或对象来执行此操作。使用对象(可能是首选),只需在类中为“下一个”对象创建一个@property
,并根据需要使用它。类似地,对于双向链接列表,前面有一个@property
。
也许反对关注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类并在“更高级别”实现,可以这么说。
答案 1 :(得分:0)
请检查我在目标C中的一些常见数据结构的实现,如链表,堆栈,二叉搜索树。 https://github.com/udaypatial/Data-Structures-in-Objective-C