目标c中的链接列表创建

时间:2012-09-12 01:50:34

标签: objective-c

有没有办法在目标c中创建链表。我是新手,到目前为止,我已经在苹果开发者指南中进行了研究,没有为链表预定义任何功能。双链表是否与objective-c中的链表相同?

请帮忙。

2 个答案:

答案 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