棧 佇列的Python實現

2021-10-05 13:53:28 字數 2955 閱讀 4908

棧和佇列是特殊的線性表,只不過我們認為的規定它的操作方法。我們把先入後出的資料結構稱為棧,先進先出的資料結構成為佇列。

python實現棧的一些基本操作的**:

class

stack

(object):

"""棧"""

def__init__

(self)

: self.items =

defis_empty

(self)

:"""判斷是否為空"""

return self.items ==

defpush

(self, item)

:"""加入元素"""

defpop

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

)

python實現佇列的**:

class

queue

(object):

"""佇列"""

def__init__

(self)

: self.items =

defis_empty

(self)

:return self.items ==

defenqueue

(self, item)

:"""進佇列"""

self.items.insert(

0,item)

defdequeue

(self)

:"""出佇列"""

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(

)

雙端佇列,在普通佇列的操作上加了一些限制,比如:從隊頭pop()、從隊尾push()或者pop();從隊頭pop()或者push()、從隊尾push()或者pop();從隊頭pop()或pop()、從隊尾push()等,其中從隊頭pop()或者push()、從隊尾push()或者pop()為雙端佇列,其它被稱為「被限制的雙端佇列」。

python實現雙端佇列:

class

deque

(object):

"""雙端佇列"""

def__init__

(self)

: self.items =

defis_empty

(self)

:"""判斷佇列是否為空"""

return self.items ==

defadd_front

(self, item)

:"""在隊頭新增元素"""

self.items.insert(

0,item)

defadd_rear

(self, item)

:"""在隊尾新增元素"""

defremove_front

(self)

:"""從隊頭刪除元素"""

return self.items.pop(0)

defremove_rear

(self)

:"""從隊尾刪除元素"""

return self.items.pop(

)def

size

(self)

:"""返回佇列大小"""

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(

)

Python 棧 佇列的實現

在python中,列表既可以作為棧使用,又可以作為佇列使用。棧 後進先出 stack 1,2,3 入棧,以列表尾部為棧頂 print stack.pop 出棧 4 print stack 1,2,3 佇列 先進先出 from collections import deque list 1,2,3 q...

Python實現棧 佇列

目錄2.佇列的python實現 本文將使用python實現資料結構中的棧 佇列 有關棧 佇列的理論原理請參考 資料結構與演算法 3 棧和佇列 以列表的形式簡單實現棧 棧 先進後出 class stack def init self self.stack 初始化 def is empty self r...

佇列實現棧棧實現佇列

佇列是一種先進先出的資料結構,要想實現先進後出,需加乙個輔助佇列進行資料的來回倒 引用交換 從而實現棧結構。例如 5 4 3 2 1 用乙個輔助佇列裝 4 3 2 1,把5彈出,在把 4 3 2 1放回原佇列,如此反覆可變成5 4 3 2 1的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...