棧的簡介
棧作為一種資料結構,是一種只能在一端進行插入和刪除操作。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。
棧的作用
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 程式 資料結...