
本文共 1051 字,大约阅读时间需要 3 分钟。
Objective-C实现栈(Stack)类
下面是一个简单的 Objective-C 实现的栈类。这个栈类支持基本的操作,包括入栈(push)、出栈(pop)、查看栈顶元素(peek)以及检查栈是否为空(isEmpty)。
类结构
首先,我们需要创建一个 Stack 类,继承自 NSObject。为了实现栈的功能,我们可以使用 NSMutableArray 来存储栈的元素。具体实现如下:
@interface Stack : NSObject @property (nonatomic, strong) NSMutableArray *elements; @end
类方法实现
接下来,我们实现类中的各个方法:
- 入栈(push)
这个方法用于将元素添加到栈的顶部。实现方法如下:
-
(void)push:(id)element { [self.elements addObject:element]; }
-
出栈(pop)
这个方法用于从栈顶部移除一个元素。如果栈为空,可能会引发错误,因此在使用该方法之前应检查栈是否为空。
-
(id)pop { return [self.elements removeLastObject]; }
-
查看栈顶元素(peek)
这个方法用于查看栈顶部的元素,不会修改栈的内容。
-
(id)peek { return [self.elements lastObject]; }
-
检查栈是否为空(isEmpty)
这个方法用于判断栈是否为空,可以通过检查元素数组的数量是否为零来实现。
- (bool)isEmpty { return [self.elements count] == 0; }
使用示例
以下是一个使用栈类的示例代码:
Stack *stack = [[Stack alloc] init]; [stack push:@"A"]; [stack push:@"B"]; [stack push:@"C"]; NSLog(@"栈顶部元素:%@,栈是否为空:%d", [stack peek], [stack isEmpty]);
输出结果:
栈顶部元素:C,栈是否为空:0
总结
通过上述实现,可以清晰地看到 Objective-C 中如何利用基础集合类(如 NSMutableArray)来实现栈的功能。这个栈类不仅支持基本的入栈和出栈操作,还支持查看栈顶元素和检查栈是否为空等功能。在实际开发中,可以根据需求扩展栈类的功能,例如支持栈的大小限制、元素的过滤等。
发表评论
最新留言
关于作者
