資料結構 之 棧

2022-02-16 11:27:55 字數 1255 閱讀 3840

"棧「者,儲存貨物或供旅客住宿的地方,可引申為倉庫、中轉站,所以引入到計算機領域裡,就是指資料暫時儲存的地方,所以才有進棧、出棧的說法

一、概念

棧(stack)又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表,這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其下方的元素成為新的棧頂元素

二、棧的特點:後進先出

class stack():

def __init__(self):

"""初始化棧(以列表充當此資料結構的容器)

"""self.items =

def push(self, item):

"""進棧(由棧頂至棧底新增)

:param item: 被新增元素

:return:

"""def pop(self):

"""出棧(由棧頂向棧底取元素)

:return: 取出的元素

"""return self.items.pop()

def isempty(self):

"""空棧

:return: 若為空棧,則返回空列表

"""return self.items ==

def size(self):

"""棧中元素個數

:return:

"""return len(self.items)

def peek(self):

"""得到棧頂元素的下標

:return:

"""return len(self.items) - 1

if __name__ == '__main__':

s = stack()

s.push(1)

s.push(2)

s.push(3)

print(s.pop())

print(s.pop())

print(s.pop())

# 3# 2

# 1# 棧這種資料結構的特點即:後進先出

資料結構之棧結構

棧結構是一種filo first in last out 的批量資料儲存結構。其特點是先進後出,後來者居上 棧的基本屬性 棧記憶體 棧頂標記 棧的當前元素個數 萬金油屬性 size 棧的基本操作 萬金油的的操作 根據實現的不同將棧結構分為兩種 1.鏈式棧 2.陣列 利用有表頭鍊錶的頭插法來完成棧的功...

資料結構之棧

4.8.2 四則運算表示式求值 程式如下所示 include include include 定義結點型別 typedef struct node node,pnode 定義棧的抽象資料型別 typedef struct stack stack,pstack 函式宣告 對棧進行初始化的函式 void...

資料結構之棧

資料結構之棧 本文討論棧的陣列實現。棧需要有如下幾個屬性 棧的容量 capacity 棧頂指標 儲存棧元素的陣列 根據這幾個屬性可以定義乙個棧結構體 struct stackrecord 然後定義棧的操作,一般可以包含如下幾個 棧的建立 stack createstack int size 棧的銷毀...