資料結構 利用Python實現常用的棧結構

2021-08-21 09:39:59 字數 1671 閱讀 4804

棧的簡介

棧作為一種資料結構,是一種只能在一端進行插入和刪除操作。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。

棧的作用

1、記憶體管理中使用的堆疊;

2、基於桟實現的二叉樹的遍歷;

3、在處理需求中的平衡問題:

(1)判斷符號是成對出現的,比如<>,{},,()等

(2)判斷這個字串是否是回文字串,比如:bcb, '123321',等。

棧的c語言實現:

demo:判讀乙個字串是否是回文字串,輸入bcb, 輸出yes

思路分析:

(1)首先,讀取這行字串,並且計算這個字串的長度

(2)其次,如果乙個字串是回文的話,那麼它的一定是對稱的,計算出中點。

mid =  len / 2  -1

(3)再次,我們將mid之前的資料全都寫入到棧中

(4)最後,再將寫入的資料一詞取出,並且和mid之後的資料進行比較,如果可以匹配成功,返回輸出yes, 否者輸出no

**如下:

棧的python語言實現:

class node(object):

# 定位的點的值和乙個指向

def

__init__(self

, val):

# 指向元素的值

,原佇列第二元素

self.val = val

# 指向的指標

self.next = none

class stack(object):

# 初始化最開始的位置

def

__init__(self):

self.top = none

# 獲取棧頂的元素

def

peek(self):

# 如果棧頂不為空

if self.top != none:

# 返回棧頂元素的值

return

self.top.val

else:

return none

# 新增到棧中

def

push(self

,n):

# 例項化節點

n = node(n)

# 頂端元素傳值給乙個指標

n.next = self.top

self.top = n

return n.val

# 退出棧def

pop(self):

if self.top == none:

return none

else:

tmp = self.top.val

# 下移一位,進行

self.top = self.top.next

return tmp

if __name__ == '__main__':

s = stack()

s.push(1)

print(s.pop())

python 面試常考資料結構演算法

致謝 python基礎演算法 劍指offer 這裡整理的都是基礎的不能再基礎的演算法,目的就是進行乙個回憶,同時作為劍指offer的乙個補充 嘿嘿 實現乙個二分查詢 輸入 乙個順序list 輸出 待查詢的元素的位置 def binarysearch alist,item first 0 last l...

資料結構 Python實現

參考部落格 演算法和資料結構 一 棧和佇列 python資料結構 棧 佇列的實現 一 python資料結構 棧 佇列的實現 二 python資料結構 鍊錶的實現 資料結構 定義 簡單來說,資料結構就是設計資料以何種方式組織並儲存在計算機中。比如 列表 集合與字典等都是一種資料結構。ps 程式 資料結...

資料結構 Python實現

參考部落格 演算法和資料結構 一 棧和佇列 python資料結構 棧 佇列的實現 一 python資料結構 棧 佇列的實現 二 python資料結構 鍊錶的實現 資料結構 定義 簡單來說,資料結構就是設計資料以何種方式組織並儲存在計算機中。比如 列表 集合與字典等都是一種資料結構。ps 程式 資料結...