Swift算法之棧和隊(duì)列的實(shí)現(xiàn)方法示例
一、概述
棧和隊(duì)列在數(shù)據(jù)結(jié)構(gòu)中是比較重要的一個(gè)數(shù)據(jù)結(jié)構(gòu)。
其實(shí)對(duì)于棧和隊(duì)列并不需要太深入的介紹,棧和隊(duì)列的核心內(nèi)容是棧是先進(jìn)后出、隊(duì)列是先進(jìn)先出。在實(shí)際開發(fā)中有些場景也可能會(huì)用到,比如 APP 中用戶可以撤銷操作,比如下棋 APP 中的悔棋操作,返回上一步就是先進(jìn)后出(后進(jìn)先出),也就是棧的特性。
比如在售票 APP 中,為先下訂單的用戶先出票,就需要用到隊(duì)列。當(dāng)然這兩個(gè)只是在簡單場景下的情況,實(shí)際開發(fā)中情況可能更復(fù)雜,比如售票 APP 為會(huì)員用戶優(yōu)先出票等。

接下來就通過 Swift 去實(shí)現(xiàn)棧和隊(duì)列。
二、實(shí)現(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
}
}
//隊(duì)列
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
}
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者使用swift能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
判斷?ScrollView List?是否正在滾動(dòng)詳解
這篇文章主要為大家介紹了判斷?ScrollView、List?是否正在滾動(dòng)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Swift在什么情況會(huì)發(fā)生內(nèi)存訪問沖突詳解
這篇文章主要給大家介紹了關(guān)于Swift在什么情況會(huì)發(fā)生內(nèi)存訪問沖突的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Swift?中的?RegexBuilder學(xué)習(xí)指南
這篇文章主要為大家介紹了Swift中的RegexBuilder學(xué)習(xí)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Swift網(wǎng)絡(luò)請(qǐng)求庫Alamofire使用詳解
這篇文章主要為大家詳細(xì)介紹了Swift網(wǎng)絡(luò)請(qǐng)求庫Alamofire的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Swift 3.0基礎(chǔ)學(xué)習(xí)之枚舉類型
枚舉在編程中很多時(shí)候要用到,在 Swift 中,枚舉具有更多的特性。下面這篇文章主要介紹了Swift 3.0基礎(chǔ)學(xué)習(xí)之枚舉類型的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
Swift調(diào)用Objective-C編寫的API實(shí)例
這篇文章主要介紹了Swift調(diào)用Objective-C編寫的API實(shí)例,介紹的比較全面和詳細(xì),對(duì)Objective-C代碼的重復(fù)利用有極大好處,的朋友可以參考下2014-07-07

