欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法

系統(tǒng) 1617 0

隊(duì)、棧和鏈表一樣,在數(shù)據(jù)結(jié)構(gòu)中非?;A(chǔ)一種數(shù)據(jù)結(jié)構(gòu),同樣他們也有各種各樣、五花八門的變形和實(shí)現(xiàn)方式。但不管他們形式上怎么變,隊(duì)和棧都有其不變的最基本的特征,我們今天就從最基本,最簡(jiǎn)單的實(shí)現(xiàn)來看看隊(duì)列和堆棧。

不管什么形式的隊(duì)列,它總有的一個(gè)共同的特點(diǎn)就是“先進(jìn)先出”。怎么理解呢?就像是超市排隊(duì)結(jié)賬,先排隊(duì)的人排在隊(duì)的前面,先結(jié)賬出隊(duì)。這是隊(duì)列的特征。

而堆棧則和隊(duì)列相反,它是“先進(jìn)后出”,怎么理解呢?基本所有的編輯器都有一個(gè)撤銷功能,就是按Ctrl+Z。當(dāng)你寫了一段文字,第一次按Ctrl+Z,消失的是你最后寫的文字,第二次按Ctrl+Z,同樣消失的是當(dāng)前編輯器內(nèi)最后寫的文字。這就是一個(gè)堆棧結(jié)構(gòu)的應(yīng)用例子。

好,介紹完概念我們來看一下代碼如何實(shí)現(xiàn)這兩種數(shù)據(jù)結(jié)構(gòu),這篇文章我們采用最簡(jiǎn)單方式――通過Python原生的數(shù)據(jù)類型列表來實(shí)現(xiàn)。上篇文章,我們介紹了鏈表,通過鏈表我們同樣可以實(shí)現(xiàn)堆棧和隊(duì)列,感興趣的朋友不妨嘗試一下。

隊(duì)列

首先,我們來定義一個(gè)隊(duì)列類:

            
class Queue():
 def __init__(self):
 self.__list = list()
          

接下來,我們給隊(duì)列類添加一些方法:

?判斷隊(duì)列是否為空

            
 def isEmpty(self):
 return self.__list == []
          

?入隊(duì)?

            
def push(self, data):
 self.__list.append(data)
          

?出隊(duì)

            
 def pop(self):
 if self.isEmpty():
  return False
 return self.__list.pop(0)
          

?定義len()函數(shù)和print()操作類方法?

            
 def __len__(self):
 return len(self.__list)
 def __str__(self):
 if self.isEmpty():
  return ''
 return ' '.join([str(x) for x in self.__list])
          

OK,到這里,一個(gè)最簡(jiǎn)單的隊(duì)列就實(shí)現(xiàn)啦,自己實(shí)例化一個(gè)隊(duì)列測(cè)試一下吧

下面我們來看堆棧

堆棧

堆棧的實(shí)現(xiàn)和隊(duì)列類似,同樣有入棧和出棧操作,我們直接上代碼:

            
class Stack():
 def __init__(self):
 self.__list = list()

 def isEmpty(self):
 return self.__list == []

 def push(self, data):
 self.__list.append(data)
 
 def pop(self):
 if self.isEmpty():
  return False
 return self.__list.pop()

 def __len__(self):
 return len(self.__list)

 def __str__(self):
 if self.isEmpty():
  return ''
 return ' '.join([str(x) for x in self.__list])
          

可以看到,堆棧和隊(duì)列的類實(shí)現(xiàn)基本相同,差別僅在出隊(duì)和出棧的時(shí)候,隊(duì)列是彈出第一個(gè)元素,而堆棧則是彈出最后一個(gè)元素。這也是隊(duì)列和堆棧最本質(zhì)的區(qū)別。

總結(jié)

以上所述是小編給大家介紹的Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 午夜网页 | 91精品国产日韩91久久久久久 | 成人欧美一区二区三区在线播放 | 高清性 | 成人精品一区久久久久 | 欧美精品成人一区二区三区四区 | 一级一级毛片看看 | 久久久国产视频 | 久久精品视频在线观看榴莲视频 | 亚洲欧美日韩中文字幕在线一区 | 欧美日韩综合视频 | 午夜视频十八嗯嗯啊免费 | 妖精视频国产 | www.福利视频| 老头巨大校花体内驰骋小说文 | 成人午夜免费在线视频 | 婷婷国产精品 | 亚洲国产天堂久久综合226 | 欧美午夜精品久久久久免费视 | 欧美日本一区视频免费 | 狠狠干中文字幕 | 狠狠综合久久av一区二区小说 | 欧美黑人性受xxxx喷水 | 一级欧美日韩 | 亚洲国产成a人v在线观看 | 国产香蕉视频在线 | 精品国产乱码久久久久久丨区2区 | 国产精品久久久99 | 欧美国产日韩在线 | 日本三级网址 | 西西人体大胆77777视频 | 日韩深夜福利 | 婷婷丁香社区 | 久久久亚洲欧洲日产国码606 | 日韩电影免费观 | 日韩欧美在线视频 | 亚洲欧洲中文日韩 | 亚洲视频在线看 | 亚洲香蕉久久一区二区三区四区 | 国内精品久久久久 | 极品美女一区二区三区视频 |