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