Python數(shù)據結構—棧、隊列

棧和隊列的特性
  • .棧(stacks)是一種只能通過訪問其一端來實現(xiàn)數(shù)據存儲與檢索的線性數(shù)據結構,具有后進先出(last in first out党巾,LIFO)的特征

  • .隊列(queue)是一種具有先進先出特征的線性數(shù)據結構,元素的增加只能在一端進行霜医,元素的刪除只能在另一端進行昧港。能夠增加元素的隊列一端稱為隊尾,可以刪除元素的隊列一端則稱為隊首

  • .對棧的兩種主要操作是將一個元素壓入棧和將一個元素彈出棧支子。入棧使用push()方法,出棧使用pop()方法
    另一個常用的操作是預覽棧頂?shù)脑卮锸妗op()方法雖然可以訪問棧頂?shù)脑刂蹬螅钦{用該方法后叹侄,棧頂元素也從棧中被永久性地刪除了。peek()方法則只返回棧頂元素昨登,而不刪除它
    為了記錄棧頂元素的位置趾代,同時也為了標記哪里可以加入新元素,我們使用變量top丰辣,當向棧內壓入元素時撒强,該變量增大;從棧內彈出元素時笙什,該變量減小
    push()飘哨、pop()和peek()是棧的3個主要方法,但是棧還有其他方法和屬性

stack通常的操作:
  Stack()   建立一個空的棧對象
  push()    把一個元素添加到棧的最頂層
  pop()     刪除棧最頂層的元素琐凭,并返回這個元素
  peek()    返回最頂層的元素芽隆,并不刪除它
  isEmpty() 判斷棧是否為空
  size()    返回棧中元素的個數(shù)
#-*- coding:?UTF-8 -*-
__author__ = 'Administrator'
#python的list對象模擬棧的實現(xiàn)
class Stack:
    #模擬棧
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return len(self.items)==0

    def push(self,item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def peek(self):
        if not self.isEmpty():
            return self.items[len(self.items)-1]

    def size(self):
        return len(self.items)
#創(chuàng)建一個棧對象,并加入操作方法
s = Stack()
print(s.isEmpty())
s.push(4)
s.push('DOG')
print(s.peek())
s.push(True)
print(s.size())
print(s.isEmpty())
s.push(8.4)
print(s.pop())
print(s.pop())
print(s.size())
  • .隊列是一種先進先出(First-In-First-Out统屈,F(xiàn)IFO)的數(shù)據結構胚吁。隊列被用在很多地方,比如提交操作系統(tǒng)執(zhí)行的一系列進程愁憔、打印任務池等腕扶,一些仿真系統(tǒng)用隊列來模擬銀行或雜貨店里排隊的顧客

    隊列的兩種主要操作是:向隊列中插入新元素和刪除隊列中的元素。插入操作也叫做入隊吨掌,刪除操作也叫做出隊半抱。入隊操作在隊尾插入新元素,出隊操作刪除隊頭的元素思犁。

    隊列的另外一項重要操作是讀取隊頭的元素代虾。這個操作叫做peek()。該操作返回隊頭元素激蹲,但不把它從隊列中刪除棉磨。除了讀取隊頭元素,我們還想知道隊列中存儲了多少元素学辱,可以使用size()滿足該需求

queue通常的操作:
Queue() 定義一個空隊列乘瓤,無參數(shù),返回值是空隊列策泣。
enqueue(item) 在隊列尾部加入一個數(shù)據項衙傀,參數(shù)是數(shù)據項,無返回值萨咕。
dequeue() 刪除隊列頭部的數(shù)據項统抬,不需要參數(shù),返回值是被刪除的數(shù)據,隊列本身有變化聪建。
isEmpty() 檢測隊列是否為空钙畔。無參數(shù),返回布爾值金麸。
size() 返回隊列數(shù)據項的數(shù)量擎析。無參數(shù),返回一個整數(shù)挥下。



class Queue:
"""模擬隊列"""
def init(self):
self.items = []
def isEmpty(self):
return self.items == []
def enqueue(self, item):
self.items.insert(0,item)

def dequeue(self):
    return self.items.pop()

def size(self):
    return len(self.items)

q=Queue()
q.isEmpty()

q.enqueue('dog')
q.enqueue(4)
q=Queue()
q.isEmpty()

q.enqueue(4)
q.enqueue('dog')
q.enqueue(True)



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末揍魂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棚瘟,更是在濱河造成了極大的恐慌现斋,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件解取,死亡現(xiàn)場離奇詭異步责,居然都是意外死亡,警方通過查閱死者的電腦和手機禀苦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門蔓肯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人振乏,你說我怎么就攤上這事蔗包。” “怎么了慧邮?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵调限,是天一觀的道長。 經常有香客問我误澳,道長耻矮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任忆谓,我火速辦了婚禮裆装,結果婚禮上,老公的妹妹穿的比我還像新娘倡缠。我一直安慰自己哨免,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布昙沦。 她就那樣靜靜地躺著琢唾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盾饮。 梳的紋絲不亂的頭發(fā)上采桃,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天懒熙,我揣著相機與錄音,去河邊找鬼芍碧。 笑死煌珊,一個胖子當著我的面吹牛,可吹牛的內容都是我干的泌豆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吏饿,長吁一口氣:“原來是場噩夢啊……” “哼踪危!你這毒婦竟也來了?” 一聲冷哼從身側響起猪落,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤贞远,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后笨忌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓝仲,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年官疲,在試婚紗的時候發(fā)現(xiàn)自己被綠了袱结。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡途凫,死狀恐怖垢夹,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情维费,我是刑警寧澤果元,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站犀盟,受9級特大地震影響而晒,放射性物質發(fā)生泄漏。R本人自食惡果不足惜阅畴,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一倡怎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恶阴,春花似錦诈胜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至昵仅,卻和暖如春缓熟,著一層夾襖步出監(jiān)牢的瞬間累魔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工够滑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垦写,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓彰触,卻偏偏與公主長得像梯投,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子况毅,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容