棧 佇列 雙端佇列的實現

2021-09-25 09:06:34 字數 1643 閱讀 5740

1.棧

class stack(object):

"""棧"""

def __init__(self):

self.__list =

def push(self,item):

"""新增新元素item到棧頂"""

def pop(self):

"""彈出棧頂元素"""

self.__list.pop()

def peek(self):

"""返回棧頂元素"""

if self.__list:

return self.__list[-1]

else:

return none

def is_empty(self):

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

return len(self.__list)

if __name__ == "__main__":

s = stack()

2.佇列

class queue(object):

"""佇列"""

def __init__(self):

self.__list =

def enqueue(self,item):

"""往佇列裡新增乙個item元素"""

def dequeue(self):

"""從佇列頭部刪除元素"""

self.__list.pop(0)

def is_empty(self):

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

return self.__list =

def size(self):

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

return len(self.__list)

if __name__ == "__main__":

q = queue()

3.雙端佇列

class queue(object):

"""佇列"""

def __init__(self):

self.__list =

def add_front(self,item):

"""往佇列頭新增乙個item元素"""

self.__list.insert(0,item)

def add_rear(self,item):

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

def pop_front(self):

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

self.__list.pop(0)

def pop_rear(self):

"""隊尾刪除元素"""

self.__list.pop()

def is_empty(self):

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

return self.__list =

def size(self):

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

return len(self.__list)

if __name__ == "__main__":

q = queue()

佇列 , 雙端佇列, 棧

注意 linkedlist中新增或者取出的方法有很多,比如add,offer,offerfirst,offerlast,push.根據使用的資料結構不同,最好區分使用.一,佇列queue fifo first in first out 0,模型上一般為右進左出,右端入隊並稱為隊尾,左端出隊並稱為隊頭...

棧 佇列 雙端佇列

棧 stack 有些地方稱為堆疊,是一種容器,可存入資料元素 訪問元素 刪除元素,由於棧資料結構只允許在一端進行操作,因而按照後進先出 lifo,last in first out 的原理運作。棧結構實現 棧可以用順序表實現,也可以用鍊錶實現。棧的操作 功能stack 建立乙個新的空棧 push i...

棧 佇列 雙端佇列

一 棧結構實現 class stack object 棧 def init self self.items defis empty self 判斷是否為空 return self.items defpush self,item 加入元素 defpop self 彈出元素 return self.it...