本文共 2028 字,大约阅读时间需要 6 分钟。
Objective-C实现SinglyLinkedList单链表算法
下面是一个使用Objective-C实现的单链表(Singly Linked List)的示例,包括基本的操作,如插入、删除、查找和遍历。这个实现提供了一个简单的框架,可以根据需要进行扩展。
@interface Node : NSObject@property (nonatomic, strong) id data;@property (nonatomic, strong) Node *next;@end
#import@interface Node : NSObject@property (nonatomic, strong) id data;@property (nonatomic, strong) Node *next;@end
// 创建节点Node *newNode = [[Node alloc] init];newNode.data = @"新节点数据";newNode.next = nil;// 头节点插入Node *head = [[Node alloc] init];head.data = @"头节点数据";head.next = newNode;// 插入新的节点到链表尾部Node *current = head;while (current.next != nil) { current = current.next;}current.next = newNode; // 删除指定节点Node *deleteNode = nil;Node *current = head;while (current != nil && [current.data isEqualToString:deleteNode]) { deleteNode = current; current = current.next;}if (deleteNode) { if (deleteNode == head) { head = deleteNode.next; } else { Node *previousNode = nil; while (current != nil && current != deleteNode) { previousNode = current; current = current.next; } if (previousNode) { previousNode.next = deleteNode.next; } else { head = deleteNode.next; } }} // 查找节点Node *searchNode = nil;Node *current = head;while (current != nil && [current.data isEqualToString:searchData]) { searchNode = current; current = current.next;} // 遍历链表for (Node *node in traverse(head)) { // 处理每个节点 NSLog(@"%@", node.data);} // 创建链表Node *node1 = [[Node alloc] init];node1.data = @"节点1";node1.next = nil;Node *node2 = [[Node alloc] init];node2.data = @"节点2";node2.next = node1;Node *head = node2;// 插入节点3Node *node3 = [[Node alloc] init];node3.data = @"节点3";node3.next = nil;// 将节点3插入到节点1后面Node *current = node1;current.next = node3;// 删除节点1删除节点("节点1");// 遍历链表遍历链表(head); 这个实现为单链表操作提供了一个基础框架,可以根据具体需求进行扩展和优化。
转载地址:http://awifk.baihongyu.com/