python資料結構 棧和佇列的實現

2021-09-19 07:26:30 字數 1261 閱讀 6877

1、棧(後進先出(last in first out,lifo))

棧是一種特殊的列表,棧內的元素只能通過列表的一端訪問,這一端稱為棧頂。棧被稱為一種**先出(lifo,last-in-first-out)的資料結構。

由於棧具有**先出的特點,所以任何不在棧頂的元素都無法訪問。為了得到棧底的元素,必須先拿掉上面的元素。

對棧的兩種主要操作是將乙個元素壓入棧和將乙個元素彈出棧。入棧使用push()方法,出棧使用pop()方法。

stack通常的操作:

stack()    建立乙個空的棧物件

push()     把乙個元素新增到棧的最頂層

pop()      刪除棧最頂層的元素,並返回這個元素

peek()     返回最頂層的元素,並不刪除它

isempty()  判斷棧是否為空

size()     返回棧中元素的個數

這裡使用python的list物件模擬棧的實現:

class stack:

"""模擬棧"""

def __init__(self):

self.items =

def isempty(self):

return len(self.items) == 0

def push(self, item):

def pop(self):

return self.items.pop()

def peek(self):

if not self.isempty():

return self.items[len(self.items) - 1]

def size(self):

return len(self.items)

s = stack()

print(s.isempty())

s.push(11)

print(s.peek())

print(s.size())

2、佇列:先進先出(first-in-first-out,fifo)

import queue

if __name__ == '__main__':

a = queue.queue()

a.put(11)

a.put(3)

print(a.qsize())

print(a.get())

參考:

資料結構 佇列和棧 Python 實現

佇列和棧都是一種特殊的線性表,所以也各有順序表和煉表兩種表示方法。佇列的python版本資料結構如下 coding utf 8 class node object def init self,value,next 0 self.value value self.next next 指標 class ...

資料結構 棧和佇列

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

資料結構 棧和佇列

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