欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python棧的基本定義與使用方法示例【初始化、賦值、入棧、出棧等】

 更新時間:2019年10月24日 09:48:07   作者:鯨落丶  
這篇文章主要介紹了python棧的基本定義與使用方法,結(jié)合實例形式分析了Python棧的初始化、賦值、入棧、出棧等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了python棧的基本定義與使用方法。分享給大家供大家參考,具體如下:

# -*- coding:utf-8 -*-
#! python3
#在桟的設計中,我們需要定義一個實例屬性top。三個實例方法:獲取棧頂元素peek();出桟pop();入棧push()
#棧的效果:先進后出
class Node(object):  ##節(jié)點,包括兩個屬性,一個是節(jié)點的值,一個是節(jié)點的下一個指向
 def __init__(self,value):
  self.value = value   #賦值給節(jié)點
  self.next = None   #節(jié)點的下一個指向
class stack(object):
 def __init__(self):
  self.top = None    #創(chuàng)建棧,賦予top棧頂屬性,top初始為空
 def peek(self):     #獲取棧頂?shù)脑兀祷貙闹?
  if self.top!= None:   #如果棧頂不為空,也就是說棧里有數(shù)據(jù)
   return self.top.value #那就直接返回棧頂?shù)闹?
  else:
   return None    #如果棧里無數(shù)據(jù),則返回None
 def push(self,node):    #添加元素到棧(參數(shù)包括self和節(jié)點的value,node)
  if node != None:    #如果加入的節(jié)點,不為空
   packNode = Node(node)  #實例化Node類
   packNode.next = self.top #將新增的節(jié)點的指向賦值為棧頂?shù)闹赶?
   self.top = packNode   #將棧頂?shù)墓?jié)點,賦值為新增節(jié)點
   return packNode.value  #返回節(jié)點的值
  else:
   return None    #返回None
 def pop(self):     #出棧
  if self.top == None:  #如果棧是空的
   return None    #返回None
  else:
   tmp = self.top.value  #將棧頂?shù)闹祩鹘otmp
   self.top = self.top.next #將棧頂指向變?yōu)槟壳皸m數(shù)南乱粋€節(jié)點
   return tmp     #返回出棧的節(jié)點的值
s = stack()
a = Node(1)
print(s.push(a).value)
print(s.push(2))
print(s.push(3))
print(s.peek())
print(s.push(4))
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop().value)

運行結(jié)果:

1
2
3
3
4
4
3
2
1

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設計有所幫助。

相關(guān)文章

  • Python pkg_resources模塊動態(tài)加載插件實例分析

    Python pkg_resources模塊動態(tài)加載插件實例分析

    當編寫應用軟件時,我們通常希望程序具有一定的擴展性,額外的功能——甚至所有非核心的功能,都能通過插件實現(xiàn),具有可插拔性。特別是使用 Python 編寫的程序,由于語言本身的動態(tài)特性,為我們的插件方案提供了很多種實現(xiàn)方式
    2022-08-08
  • Keras神經(jīng)網(wǎng)絡efficientnet模型搭建yolov3目標檢測平臺

    Keras神經(jīng)網(wǎng)絡efficientnet模型搭建yolov3目標檢測平臺

    這篇文章主要為大家介紹了Keras利用efficientnet系列模型搭建yolov3目標檢測平臺的過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python3+mysql查詢數(shù)據(jù)并通過郵件群發(fā)excel附件

    python3+mysql查詢數(shù)據(jù)并通過郵件群發(fā)excel附件

    這篇文章主要為大家詳細介紹了python3+mysql查詢數(shù)據(jù),并通過郵件群發(fā)excel附件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python在Windows8下獲取本機ip地址的方法

    python在Windows8下獲取本機ip地址的方法

    這篇文章主要介紹了python在Windows8下獲取本機ip地址的方法,涉及Python中socket包相關(guān)函數(shù)的使用技巧,需要的朋友可以參考下
    2015-03-03
  • python 安裝impala包步驟

    python 安裝impala包步驟

    這篇文章主要介紹了python 安裝impala包步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • pytorch __init__、forward與__call__的用法小結(jié)

    pytorch __init__、forward與__call__的用法小結(jié)

    這篇文章主要介紹了pytorch __init__、forward與__call__的用法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Python?HMAC模塊維護數(shù)據(jù)安全技術(shù)實例探索

    Python?HMAC模塊維護數(shù)據(jù)安全技術(shù)實例探索

    本篇博客將帶領(lǐng)讀者深入探索Python中HMAC模塊的高級應用,通過豐富的示例代碼和詳細的解釋,揭示HMAC在實際應用場景中的多面光芒,從基礎概念到密碼存儲、文件完整性驗證、API安全,再到與加密算法的巧妙結(jié)合
    2024-01-01
  • python實現(xiàn)布隆過濾器及原理解析

    python實現(xiàn)布隆過濾器及原理解析

    布隆過濾器( BloomFilter )是一種數(shù)據(jù)結(jié)構(gòu),比較巧妙的概率型數(shù)據(jù)結(jié)構(gòu)(probabilistic data structure),特點是高效地插入和查詢,可以用來告訴你 “某樣東西一定不存在或者可能存在”。這篇文章主要介紹了python實現(xiàn)布隆過濾器 ,需要的朋友可以參考下
    2019-12-12
  • Python?functools凍結(jié)參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化

    Python?functools凍結(jié)參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化

    這篇文章主要為大家介紹了Python?functools凍結(jié)參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Django后臺管理系統(tǒng)的圖文使用教學

    Django后臺管理系統(tǒng)的圖文使用教學

    在本篇文章里小編給大家整理的是一篇關(guān)于Django后臺管理系統(tǒng)的圖文使用教學內(nèi)容,需要的朋友們參考下。
    2020-01-01

最新評論