python中的棧及其實現

2021-08-26 05:16:22 字數 991 閱讀 8129

棧(stack),有些地方稱為堆疊,是一種容器,可存入資料元素、訪問元素、刪除元素,它的特點在於只能允許在容器的一端(稱為棧頂端指標,英語:top)進行加入資料(英語:push)和輸出資料(英語:pop)的運算。沒有了位置概念,保證任何時候可以訪問、刪除的元素都是此前最後存入的那個元素,確定了一種預設的訪問順序。

由於棧資料結構只允許在一端進行操作,因而按照後進先出(lifo, last in first out)的原理運作。

棧可以用順序表實現,也可以用鍊錶實現。

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佇列及其實現

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。佇列不允許在中間部位進行操作!假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而an是隊...

python 中的md5加密及其實現

開發環境 python3 用到的庫 hashlib,random md5加密,用到了hashlib庫中的md5 random用來生成鹽 import hashlib import random 簡單版的md5加密返回密文函式 def mymd5 pw md hashlib.md5 生成md5對像 m...

code及其實現

1.what is code?編碼並不是我隨便亂取的名字,其原理在資訊檢索導論第5章第3節有介紹,用於壓縮一連串有序的數字型別的資料非常有用。在mg中將 編碼歸類為全域性模型 mg更推崇區域性模型 其原理是將所有的資料分成兩部分連起來,第一部分為資料長度,第二部分為資料內容。這樣做的好處是對於很小的...