Swift基礎(chǔ)之實現(xiàn)一個棧

首先棧是一個遵從“后進先出,先進后出”規(guī)則的序列。
同時還有兩個操作:
入棧操作,將一個元素放入棧中;
出棧操作,當棧不為空的時候,將棧頂元素(最后一個放入棧的元素)從棧中取出,棧中元素個數(shù)減一。

代碼如下:

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()
    }
}

棧的實現(xiàn)還是非常簡單的,需要注意的是入棧出棧方法使用了mutating修飾,這是為了改變結(jié)構(gòu)體中的items成員變量,去掉則會有問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 136.泛型 泛型代碼讓你可以寫出靈活,可重用的函數(shù)和類型,它們可以使用任何類型,受你定義的需求的約束。你可以寫出...
    無灃閱讀 1,653評論 0 4
  • Swift 提供了泛型讓你寫出靈活且可重用的函數(shù)和類型。Swift 標準庫是通過泛型代碼構(gòu)建出來的。Swift 的...
    零度_不結(jié)冰閱讀 439評論 0 0
  • 本章將會介紹 泛型所解決的問題泛型函數(shù)類型參數(shù)命名類型參數(shù)泛型類型擴展一個泛型類型類型約束關(guān)聯(lián)類型泛型 Where...
    寒橋閱讀 713評論 0 2
  • 泛型代碼可以確保你寫出靈活的,可重用的函數(shù)和定義出任何你所確定好的需求的類型。你的可以寫出避免重復(fù)的代碼,并且用一...
    iOS_Developer閱讀 880評論 0 0
  • 原創(chuàng)干貨分享·精致工匠精神 畢業(yè)等于失業(yè),估計這是很多大學(xué)生的想法。 當我們站在畢業(yè)的走廊上,我們迷茫了。 當我們...
    鬼燈森林閱讀 3,657評論 14 83

友情鏈接更多精彩內(nèi)容