棧和佇列是特殊的線性表,只不過我們認為的規定它的操作方法。我們把先入後出的資料結構稱為棧,先進先出的資料結構成為佇列。
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的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...