資料結構基礎 棧和佇列

2021-09-29 07:04:29 字數 1126 閱讀 3895

特性:後進先出

from queue import lifoqueue

lq = lifoqueue(maxsize=0)

#棧寫入資料

lq.put(0)

lq.put(1)

lq.put(2)

#刪除隊尾資料,並返回該資料

lq.get(

)#輸出佇列所有資料

print

(lq.queue)

#輸出:

# [0, 1, 2]

# [0, 1]

特性:先進後出

from queue import queue

#maxsize設定佇列中,資料上限,小於或等於0則不限制,容器中大於這個數則阻塞,直到佇列中的資料被消掉

q = queue(maxsize=0)

#寫入佇列資料

q.put(0)

q.put(1)

q.put(2)

#輸出當前佇列所有資料

print

(q.queue)

#刪除佇列資料,並返回該資料

q.get(

)#輸也所有佇列資料

print

(q.queue)

# 輸出:

# deque([0, 1, 2])

# deque([1, 2])

優先順序越大越早被彈出

# 儲存資料時可設定優先順序的佇列

# 優先順序設定數越小等級越高

pq = priorityqueue(maxsize=0)

#寫入佇列,設定優先順序

pq.put((9

,'a'))

pq.put((7

,'c'))

pq.put((1

,'d'))

#輸出隊例全部資料

print

(pq.queue)

#取隊例資料,可以看到,是按優先順序取的。

pq.get(

)pq.get(

)print

(pq.queue)

#輸出:[(

9,'a')

]

leetcode

資料結構基礎 棧和佇列

棧 stack 是限定僅在表尾進行出入和刪除操作的線性表。後進先出,last in first out 棧頂 top 棧底 bottom 空棧 top 1 棧是一種特殊的線性表,插入和刪除操作只能在表尾進行 top 插入 push,進棧 刪除 pop,出棧 data 同線性表,元素具有相同的型別,相...

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...

資料結構 棧和佇列

本章的基本內容是 兩種特殊的線性表 棧和佇列 從資料結構角度看,棧和佇列是操作受限的線性表,他們的邏輯結構相同。從抽象資料型別角度看,棧和佇列是兩種重要的抽象資料型別。p棧 限定僅在表的一端進行插入和刪除操作的線性表。p允許插入和刪除的一端稱為棧頂,另一端稱為棧底。p空棧 不含任何資料元素的棧。a ...