最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Swift算法之棧和隊列的實現(xiàn)方法示例

 更新時間:2017年03月31日 10:42:38   作者:李峰峰  
Swift語言中沒有內設的棧和隊列,很多擴展庫中使用Generic Type來實現(xiàn)棧或是隊列。下面這篇文章就來給大家詳細介紹了Swift算法之棧和隊列的實現(xiàn)方法,需要的朋友可以參考學習,下面來一起看看吧。

一、概述

棧和隊列在數(shù)據(jù)結構中是比較重要的一個數(shù)據(jù)結構。

其實對于棧和隊列并不需要太深入的介紹,棧和隊列的核心內容是棧是先進后出、隊列是先進先出。在實際開發(fā)中有些場景也可能會用到,比如 APP 中用戶可以撤銷操作,比如下棋 APP 中的悔棋操作,返回上一步就是先進后出(后進先出),也就是棧的特性。

比如在售票 APP 中,為先下訂單的用戶先出票,就需要用到隊列。當然這兩個只是在簡單場景下的情況,實際開發(fā)中情況可能更復雜,比如售票 APP 為會員用戶優(yōu)先出票等。

接下來就通過 Swift 去實現(xiàn)棧和隊列。

二、實現(xiàn)思路及代碼

直接上代碼:

//棧
class Stack {
 var stack: [AnyObject]
 
 init() {
 stack = [AnyObject]()
 }
 
 func push(object: AnyObject) {
 stack.append(object)
 }
 
 func pop() -> AnyObject? {
 if !isEmpty() {
 return stack.removeLast()
 } else {
 return nil
 }
 }
 
 func isEmpty() -> Bool {
 return stack.isEmpty
 }
 
 func peek() -> AnyObject? {
 return stack.last
 }
 
 func size() -> Int {
 return stack.count
 }
}
 
//隊列
class Queue {
 var queue: [AnyObject]
 
 init() {
 queue = [AnyObject]()
 }
 
 func enqueue(object: AnyObject) {
 queue.append(object)
 }
 
 func dequeue() -> AnyObject? {
 if !isEmpty() {
 return queue.removeFirst()
 } else {
 return nil
 
 }
 }
 
 func isEmpty() -> Bool {
 return queue.isEmpty
 }
 
 func peek() -> AnyObject? {
 return queue.first
 }
 
 func size() -> Int {
 return queue.count
 }
 
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者使用swift能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • 判斷?ScrollView List?是否正在滾動詳解

    判斷?ScrollView List?是否正在滾動詳解

    這篇文章主要為大家介紹了判斷?ScrollView、List?是否正在滾動示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Swift在什么情況會發(fā)生內存訪問沖突詳解

    Swift在什么情況會發(fā)生內存訪問沖突詳解

    這篇文章主要給大家介紹了關于Swift在什么情況會發(fā)生內存訪問沖突的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Swift縮放并填充圖片功能的實現(xiàn)

    Swift縮放并填充圖片功能的實現(xiàn)

    最近有一個需求,就是將圖片先等比例縮放到指定大小,然后將空余出來空間填充為黑色,返回指定大小的圖片。本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • Swift?中的?RegexBuilder學習指南

    Swift?中的?RegexBuilder學習指南

    這篇文章主要為大家介紹了Swift中的RegexBuilder學習指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Swift 數(shù)組及常用方法詳解總結

    Swift 數(shù)組及常用方法詳解總結

    數(shù)組(Array)是有序的元素序列。 若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標變量
    2021-11-11
  • 深入解析Swift代理模式

    深入解析Swift代理模式

    委托(代理)是一種設計模式,它允許類或結構體將一些需要它們負責的功能交由(委托)給其他的類型。下面這篇文章主要介紹了Swift代理模式的相關資料,文章開始先介紹了Objective-C相關的內容,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Swift網(wǎng)絡請求庫Alamofire使用詳解

    Swift網(wǎng)絡請求庫Alamofire使用詳解

    這篇文章主要為大家詳細介紹了Swift網(wǎng)絡請求庫Alamofire的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Swift 3.0基礎學習之枚舉類型

    Swift 3.0基礎學習之枚舉類型

    枚舉在編程中很多時候要用到,在 Swift 中,枚舉具有更多的特性。下面這篇文章主要介紹了Swift 3.0基礎學習之枚舉類型的相關資料,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Swift調用Objective-C編寫的API實例

    Swift調用Objective-C編寫的API實例

    這篇文章主要介紹了Swift調用Objective-C編寫的API實例,介紹的比較全面和詳細,對Objective-C代碼的重復利用有極大好處,的朋友可以參考下
    2014-07-07
  • Swift語言中的一些訪問控制設置詳解

    Swift語言中的一些訪問控制設置詳解

    這篇文章主要介紹了Swift語言中的一些訪問控制設置詳解,是Swift入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11

最新評論

信丰县| 泰来县| 新密市| 嘉义县| 个旧市| 光山县| 墨竹工卡县| 抚顺市| 临湘市| 怀柔区| 临澧县| 曲靖市| 马边| 璧山县| 闸北区| 永德县| 牙克石市| 楚雄市| 独山县| 潞西市| 通化市| 阳新县| 湟源县| 平顺县| 徐水县| 临漳县| 墨玉县| 秦安县| 健康| 澳门| 皮山县| 桐梓县| 和田县| 当雄县| 巴东县| 平塘县| 荔波县| 岳西县| 双鸭山市| 黄大仙区| 江孜县|