色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 棧和隊列

林玟書1年前6瀏覽0評論

Python中的棧和隊列是常見的數(shù)據(jù)結(jié)構(gòu),它們都是線性結(jié)構(gòu)中比較基礎(chǔ)的一種,用于存儲和管理數(shù)據(jù)。

棧(Stack)是一種操作受限的線性表,其限制為只能在表的一端進(jìn)行插入和刪除操作,這一端被稱為棧頂。棧按照先進(jìn)后出(LIFO)的原則進(jìn)行操作,也就是最后加入的元素最先被刪除。

# Python實現(xiàn)棧
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.pop())  # 3

隊列(Queue)也是一種操作受限的線性表,其限制為只能在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,這一端被稱為隊頭,另一端為隊尾。隊列按照先進(jìn)先出(FIFO)的原則進(jìn)行操作,也就是最先加入的元素最先被刪除。

# Python實現(xiàn)隊列
class Queue:
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)
queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
print(queue.dequeue())  # 1

棧和隊列雖然有區(qū)別,但其本質(zhì)都是一種數(shù)據(jù)結(jié)構(gòu),它們在程序設(shè)計和算法實現(xiàn)中發(fā)揮著重要的作用。在Python中我們可以通過使用列表等數(shù)據(jù)類型,靈活地實現(xiàn)這兩種數(shù)據(jù)結(jié)構(gòu)。