3

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

请帮忙。

4

2 回答 2

3

首先要记住的是,Objective-C就是C,它还有很多。

接下来是对象作为(本质上)指针(编译器知道指向对象)传递。

所以你当然可以创建和管理你自己的链表,你可以用结构对象来做。使用对象(可能是首选),只需@property在类中为“下一个”对象创建一个,然后随意使用它。类似地,对于双向链表,有一个@propertyfor 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 类并在“更高级别”上实现,可以这么说。

于 2012-09-12T02:00:39.487 回答
0

请检查我在目标 C 中实现的一些常见数据结构,如链表、堆栈、二叉搜索树。 https://github.com/udaypatial/Data-Structures-in-Objective-C

于 2015-12-07T10:08:52.617 回答