99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀Python 數(shù)據(jù)結(jié)構(gòu)之堆棧實(shí)例代碼
Python 數(shù)據(jù)結(jié)構(gòu)之堆棧實(shí)例代碼
2017-11-17
收藏

Python 數(shù)據(jù)結(jié)構(gòu)之堆棧實(shí)例代碼

這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)之堆棧實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

Python 堆棧
堆棧是一個(gè)后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu). 堆棧這個(gè)數(shù)據(jù)結(jié)構(gòu)可以用于處理大部分具有后進(jìn)先出的特性的程序流 .
在堆棧中, push 和 pop 是常用術(shù)語:

    push: 意思是把一個(gè)對象入棧.
    pop: 意思是把一個(gè)對象出棧.

下面是一個(gè)由 Python 實(shí)現(xiàn)的簡單的堆棧結(jié)構(gòu):
    
stack = []         # 初始化一個(gè)列表數(shù)據(jù)類型對象, 作為一個(gè)棧
 
def pushit():       # 定義一個(gè)入棧方法
  stack.append(raw_input('Enter New String: ').strip())   
  # 提示輸入一個(gè)入棧的 String 對象, 調(diào)用 Str.strip() 保證輸入的 String 值不包含多余的空格
 
def popit():        # 定義一個(gè)出棧方法
  if len(stack) == 0:
    print "Cannot pop from an empty stack!"
  else:
    print 'Remove [', `stack.pop()`, ']'
    # 使用反單引號(hào)(` `)來代替 repr(), 把 String 的值用引號(hào)擴(kuò)起來, 而不僅顯示 String 的值
 
def viewstack():      # 定義一個(gè)顯示堆棧中的內(nèi)容的方法
    print stack
 
CMDs = {'u':pushit, 'o':popit, 'v':viewstack}
# 定義一個(gè) Dict 類型對象, 將字符映射到相應(yīng)的 function .可以通過輸入字符來執(zhí)行相應(yīng)的操作
 
def showmenu():      # 定義一個(gè)操作菜單提示方法
  pr = """
  p(U)sh
  p(O)p
  (V)iew
  (Q)uit
 
  Enter choice: """
 
  while True:
    while True:
      try:
        choice = raw_input(pr).strip()[0].lower()
        # Str.strip() 去除 String 對象前后的多余空格
        # Str.lower() 將多有輸入轉(zhuǎn)化為小寫, 便于后期的統(tǒng)一判斷
        # 輸入 ^D(EOF, 產(chǎn)生一個(gè) EOFError 異常)
        # 輸入 ^C(中斷退出, 產(chǎn)生一個(gè) keyboardInterrupt 異常)
 
      except (EOFError, KeyboardInterrupt, IndexError):
        choice = 'q'
 
      print '\nYou picked: [%s]' % choice
 
      if choice not in 'uovq':
        print 'Invalid option, try again'
      else:
        break
 
 
    if choice == 'q':
      break
    CMDs[choice]()
    # 獲取 Dict 中字符對應(yīng)的 functionName, 實(shí)現(xiàn)函數(shù)調(diào)用
 
if __name__ == '__main__':
  showmenu()

NOTE: 在堆棧數(shù)據(jù)結(jié)構(gòu)中, 主要應(yīng)用了 List 數(shù)據(jù)類型對象的 容器 和 可變 等特性, 表現(xiàn)在 List.append() 和 List.pop() 這兩個(gè)列表類型內(nèi)建函數(shù)的調(diào)用.


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }