欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python棧和隊(duì)列怎么實(shí)現(xiàn)

這篇文章主要介紹“Python棧和隊(duì)列怎么實(shí)現(xiàn)”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Python棧和隊(duì)列怎么實(shí)現(xiàn)”文章能幫助大家解決問(wèn)題。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、青山湖網(wǎng)站維護(hù)、網(wǎng)站推廣。

一、棧概述

棧(stack),有些地方稱(chēng)為堆棧,是一種容器,可存入數(shù)據(jù)元素、訪問(wèn)元素、刪除元素,它的特點(diǎn)在于只能允許在容器的一端(稱(chēng)為棧頂端指標(biāo),英語(yǔ):top)進(jìn)行加入數(shù)據(jù)(英語(yǔ):push)和輸出數(shù)據(jù)(英語(yǔ):pop)的運(yùn)算。沒(méi)有了位置概念,保證任何時(shí)候可以訪問(wèn)、刪除的元素都是此前最后存入的那個(gè)元素,確定了一種默認(rèn)的訪問(wèn)順序。

由于棧數(shù)據(jù)結(jié)構(gòu)只允許在一端進(jìn)行操作,因而按照后進(jìn)先出(LIFO, Last In First Out)的原理運(yùn)作。

Python棧和隊(duì)列怎么實(shí)現(xiàn)

二、棧結(jié)構(gòu)的實(shí)現(xiàn)

??梢杂庙樞虮韺?shí)現(xiàn),也可以用鏈表實(shí)現(xiàn)。

2.1 棧的操作
  • Stack() 創(chuàng)建一個(gè)新的空棧

  • push(item) 添加一個(gè)新的元素item到棧頂

  • pop() 彈出棧頂元素

  • peek() 返回棧頂元素

  • is_empty() 判斷棧是否為空

  • size() 返回棧的元素個(gè)數(shù)

2.2 相關(guān)實(shí)現(xiàn)
class Stack(object):
    """棧"""
    def __init__(self):
         self.items = []

    def is_empty(self):
        """判斷是否為空"""
        return self.items == []

    def push(self, item):
        """加入元素"""
        self.items.append(item)

    def pop(self):
        """彈出元素"""
        return self.items.pop()

    def peek(self):
        """返回棧頂元素"""
        return self.items[len(self.items)-1]

    def size(self):
        """返回棧的大小"""
        return len(self.items)

if __name__ == "__main__":
    stack = Stack()
    stack.push("hello")
    stack.push("world")
    stack.push("itcast")
    print stack.size()
    print stack.peek()
    print stack.pop()
    print stack.pop()
    print stack.pop()

三、隊(duì)列概述

隊(duì)列(queue)是只允許在一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作的線性表。

隊(duì)列是一種先進(jìn)先出的(First In First Out)的線性表,簡(jiǎn)稱(chēng)FIFO。允許插入的一端為隊(duì)尾,允許刪除的一端為隊(duì)頭。隊(duì)列不允許在中間部位進(jìn)行操作!假設(shè)隊(duì)列是q=(a1,a2,……,an),那么a1就是隊(duì)頭元素,而an是隊(duì)尾元素。這樣我們就可以刪除時(shí),總是從a1開(kāi)始,而插入時(shí),總是在隊(duì)列最后。這也比較符合我們通常生活中的習(xí)慣,排在第一個(gè)的優(yōu)先出列,最后來(lái)的當(dāng)然排在隊(duì)伍最后。

四、隊(duì)列的實(shí)現(xiàn)

同棧一樣,隊(duì)列也可以用順序表或者鏈表實(shí)現(xiàn)。

4.1 相關(guān)操作及實(shí)現(xiàn)
  • Queue() 創(chuàng)建一個(gè)空的隊(duì)列

  • enqueue(item) 往隊(duì)列中添加一個(gè)item元素

  • dequeue() 從隊(duì)列頭部刪除一個(gè)元素

  • is_empty() 判斷一個(gè)隊(duì)列是否為空

  • size() 返回隊(duì)列的大小

class Queue(object):
    """隊(duì)列"""
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def enqueue(self, item):
        """進(jìn)隊(duì)列"""
        self.items.insert(0,item)

    def dequeue(self):
        """出隊(duì)列"""
        return self.items.pop()

    def size(self):
        """返回大小"""
        return len(self.items)

if __name__ == "__main__":
    q = Queue()
    q.enqueue("hello")
    q.enqueue("world")
    q.enqueue("itcast")
    print q.size()
    print q.dequeue()
    print q.dequeue()
    print q.dequeue()

五、雙端隊(duì)列

雙端隊(duì)列(deque,全名double-ended queue),是一種具有隊(duì)列和棧的性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。

雙端隊(duì)列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進(jìn)行。雙端隊(duì)列可以在隊(duì)列任意一端入隊(duì)和出隊(duì)。

5.1 相關(guān)操作及實(shí)現(xiàn)
  • Deque() 創(chuàng)建一個(gè)空的雙端隊(duì)列

  • add_front(item) 從隊(duì)頭加入一個(gè)item元素

  • add_rear(item) 從隊(duì)尾加入一個(gè)item元素

  • remove_front() 從隊(duì)頭刪除一個(gè)item元素

  • remove_rear() 從隊(duì)尾刪除一個(gè)item元素

  • is_empty() 判斷雙端隊(duì)列是否為空

  • size() 返回隊(duì)列的大小

class Deque(object):
    """雙端隊(duì)列"""
    def __init__(self):
        self.items = []

    def is_empty(self):
        """判斷隊(duì)列是否為空"""
        return self.items == []

    def add_front(self, item):
        """在隊(duì)頭添加元素"""
        self.items.insert(0,item)

    def add_rear(self, item):
        """在隊(duì)尾添加元素"""
        self.items.append(item)

    def remove_front(self):
        """從隊(duì)頭刪除元素"""
        return self.items.pop(0)

    def remove_rear(self):
        """從隊(duì)尾刪除元素"""
        return self.items.pop()

    def size(self):
        """返回隊(duì)列大小"""
        return len(self.items)

if __name__ == "__main__":
    deque = Deque()
    deque.add_front(1)
    deque.add_front(2)
    deque.add_rear(3)
    deque.add_rear(4)
    print deque.size()
    print deque.remove_front()
    print deque.remove_front()
    print deque.remove_rear()
    print deque.remove_rear()

關(guān)于“Python棧和隊(duì)列怎么實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

文章名稱(chēng):Python棧和隊(duì)列怎么實(shí)現(xiàn)
網(wǎng)頁(yè)路徑:http://aaarwkj.com/article14/igcgde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站營(yíng)銷(xiāo)網(wǎng)站導(dǎo)航、全網(wǎng)營(yíng)銷(xiāo)推廣品牌網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
亚洲一品道在线观看| 欧美熟妇精品一区二区蜜桃| 人妻一区二区三区久久| 91久久国产香蕉熟女| 国产亚洲一区激情小说| 日韩人妻熟妇中文字幕| 色自拍偷拍另类欧洲美女| 欧美一区二区三区顶级黄片| 国产欧美日韩精品久久久久久| 免费成人自拍偷拍视频| av资源在线观看少妇丰满| 這裏隻有无码人妻久久| 海角社区av在线播放| 在线观看中文字幕不卡二区| 欧美日本黄色一级视频| 性生活自制视频网站麻豆| 国产三级黄在线观看| 亚洲成人av在线直播| 国产精品黄色91熟女| 在线免费观看视频97| 成年人在线观看免费观看| 综合激情四射亚洲激情| 亚欧成人永久免费视频| 国产精品自拍激情在线观看| 久久久久久精品国产av| 高潮少妇水多毛多av| 韩日男人女人性生活视频| 后入动漫视频在线观看| 免费午夜福利一区二区| 中国美女下面毛茸茸视频| 精品少妇人妻一区二区三区| 一区二区三区中文在线播放| 日韩不卡免费一区二区三区视频| 周妍希浴室视频色哟哟| 亚洲少妇插进去综合网| 日产一区二区三区网站| 四虎在线观看最新入口| 91在线国内在线观看| 日本一区二区三区高清| 麻豆人妻一区二区三区| 精品国产熟女成人av|