棧與佇列的實現(python)

2021-09-02 23:38:01 字數 2373 閱讀 8608

利用python內建的list來實現棧

class stack(object):

"""棧"""

def __init__(self):

self.items =

def is_empty(self):

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

return self.items ==

def push(self, 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()

利用python內建的list來實現佇列

class queue(object):

"""佇列"""

def __init__(self):

self.items =

def is_empty(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)

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

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

class deque(object):

"""雙端佇列"""

def __init__(self):

self.items =

def is_empty(self):

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

return self.items ==

def add_front(self, item):

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

self.items.insert(0,item)

def add_rear(self, item):

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

def remove_front(self):

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

return self.items.pop(0)

def remove_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實現

棧 class stack object def init self self.items def enstack self,item def destack self self.items.pop 1 def isempty self return self.items def clear sel...

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實現

棧和佇列是特殊的線性表,只不過我們認為的規定它的操作方法。我們把先入後出的資料結構稱為棧,先進先出的資料結構成為佇列。python實現棧的一些基本操作的 class stack object 棧 def init self self.items defis empty self 判斷是否為空 ret...