Swift基础之实现一个栈

首先栈是一个遵从“后进先出,先进后出”规则的序列。
同时还有两个操作:
入栈操作,将一个元素放入栈中;
出栈操作,当栈不为空的时候,将栈顶元素(最后一个放入栈的元素)从栈中取出,栈中元素个数减一。

代码如下:

struct Stack<Element> {  //使用泛型让栈能存储各种元素
    var items = [Element]()
    mutating func push(_ item: Element) {  //入栈
        items.append(item)
    }
    
    mutating func pop() -> Element?{  //出栈
        if items.count < 1 {
            return nil
        }
        return items.removeLast()
    }
}

栈的实现还是非常简单的,需要注意的是入栈出栈方法使用了mutating修饰,这是为了改变结构体中的items成员变量,去掉则会有问题。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 5,454评论 0 4
  • Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...
    零度_不结冰阅读 3,064评论 0 0
  • 本章将会介绍 泛型所解决的问题泛型函数类型参数命名类型参数泛型类型扩展一个泛型类型类型约束关联类型泛型 Where...
    寒桥阅读 3,858评论 0 2
  • 泛型代码可以确保你写出灵活的,可重用的函数和定义出任何你所确定好的需求的类型。你的可以写出避免重复的代码,并且用一...
    iOS_Developer阅读 4,212评论 0 0
  • 原创干货分享·精致工匠精神 毕业等于失业,估计这是很多大学生的想法。 当我们站在毕业的走廊上,我们迷茫了。 当我们...
    鬼灯森林阅读 8,906评论 14 83

友情链接更多精彩内容