日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 栈和队列_Python实现栈和队列的简单操作方法示例

發布時間:2025/3/20 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 栈和队列_Python实现栈和队列的简单操作方法示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了Python實現棧和隊列的簡單操作方法。分享給大家供大家參考,具體如下:

先簡單的了解一下數據結構里面的棧和堆:

棧和隊列是兩種基本的數據結構,同為容器類型。兩者根本的區別在于:

stack:后進先出

queue:先進先出

stack和queue是不能通過查詢具體某一個位置的元素而進行操作的。但是他們的排列是按順序的

對于stack我們可以使用python內置的list實現,因為list是屬于線性數組,在末尾插入和刪除一個元素所使用的時間都是O(1),這非常符合stack的要求。當然,我們也可以使用鏈表來實現。

stack的實現代碼(使用python內置的list),實現起來是非常的簡單,就是list的一些常用操作

class Stack(object):

def __init__(self):

self.stack = []

def push(self, value): # 進棧

self.stack.append(value)

def pop(self): #出棧

if self.stack:

self.stack.pop()

else:

raise LookupError('stack is empty!')

def is_empty(self): # 如果棧為空

return bool(self.stack)

def top(self):

#取出目前stack中最新的元素

return self.stack[-1]

我們定義如下的鏈表來實現隊列數據結構:

定義一個頭結點,左邊指向隊列的開頭,右邊指向隊列的末尾,這樣就可以保證我們插入一個元素和取出一個元素都是O(1)的操作,使用這種鏈表實現stack也是非常的方便。實現代碼如下:

class Head(object):

def __init__(self):

self.left = None

self.right = None

class Node(object):

def __init__(self, value):

self.value = value

self.next = None

class Queue(object):

def __init__(self):

#初始化節點

self.head = Head()

def enqueue(self, value):

#插入一個元素

newnode = Node(value)

p = self.head

if p.right:

#如果head節點的右邊不為None

#說明隊列中已經有元素了

#就執行下列的操作

temp = p.right

p.right = newnode

temp.next = newnode

else:

#這說明隊列為空,插入第一個元素

p.right = newnode

p.left = newnode

def dequeue(self):

#取出一個元素

p = self.head

if p.left and (p.left == p.right):

#說明隊列中已經有元素

#但是這是最后一個元素

temp = p.left

p.left = p.right = None

return temp.value

elif p.left and (p.left != p.right):

#說明隊列中有元素,而且不止一個

temp = p.left

p.left = temp.next

return temp.value

else:

#說明隊列為空

#拋出查詢錯誤

raise LookupError('queue is empty!')

def is_empty(self):

if self.head.left:

return False

else:

return True

def top(self):

#查詢目前隊列中最早入隊的元素

if self.head.left:

return self.head.left.value

else:

raise LookupError('queue is empty!')

希望本文所述對大家Python程序設計有所幫助。

總結

以上是生活随笔為你收集整理的python 栈和队列_Python实现栈和队列的简单操作方法示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 神马影院午夜伦理 | 综合五月天| av天天干 | 黑白配av| 中国老熟女重囗味hdxx | 国产精品一区二区免费在线观看 | 久久二| 男人的天堂黄色 | 亚洲一区二区 | 伊人久久久久噜噜噜亚洲熟女综合 | 一本大道久久精品 | 少妇做爰免费理伦电影 | av影院在线| 91影视在线观看 | 名人明星三级videos | 欧美一区二三区 | 国产探花精品一区二区 | 国产中文字幕一区二区 | 91黄色小视频 | 亚洲欧美日韩一区二区三区在线观看 | 操韩国美女| 激情五月婷婷综合 | 久久久久亚洲av无码专区首jn | 女人脱下裤子让男人捅 | 中文字幕亚洲在线 | 久久久亚洲精品视频 | 婷婷视频一区 | 法国空姐在线观看视频 | 女人扒开腿让男人捅爽 | 古装三级吃奶做爰 | 美女网站在线 | 97超碰资源总站 | 爽插| 久久大尺度 | av网站国产| 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 视频日韩 | 国产精品破处 | 国产女人高潮视频 | 久久亚洲精品石原莉奈 | 久久涩视频 | 亚洲国产一区二区三区在线观看 | 久久精品日韩 | 丝袜美腿av | 欧美成人精品欧美一级私黄 | 国外亚洲成av人片在线观看 | 播播激情网 | 国产伦精品一区二区三区四区 | 婷婷在线观看视频 | 韩日黄色片 | 小视频免费在线观看 | av黄在线观看 | 777国产成人入口 | 91精品国产综合久久久蜜臀图片 | 亚洲成人诱惑 | 91色多多| 黑丝一区二区三区 | 波多av| 一道本在线 | 日本真人做爰免费视频120秒 | 天天操夜夜操狠狠操 | 亚洲欧美精品在线观看 | 亚洲av永久中文无码精品综合 | 日韩激情在线视频 | 黄色片a级 | 最近国语视频在线观看免费播放 | 带aaa级的网名 | 亚洲国产免费 | 日本三级视频在线播放 | 天堂999| 亚洲精品一区二区三区蜜桃 | 日本欧美一区二区 | 午夜国产一区二区三区 | 美女尻逼视频 | 女人的毛片 | 黄色a级片在线观看 | 日韩一区二区三区不卡 | 天天婷婷 | 蜜桃av中文字幕 | 性xxxxxxxxx| 国产ts在线观看 | 日本加勒比一区二区 | 日韩人妻精品一区二区三区视频 | 一级片av| 天天色综合1 | 男生坤坤放进女生坤坤里 | 北条麻妃一区二区三区四区五区 | 亚洲无遮挡 | 精品熟妇无码av免费久久 | 精品成人一区二区三区久久精品 | 欧美超逼视频 | 黄色国产小视频 | 毛片av网址 | 9cao| 国产盗摄一区二区三区在线 | 国产精品羞羞答答 | 91免费看国产 | 欧美熟妇一区二区 | 好吊在线视频 |