欧美三区_成人在线免费观看视频_欧美极品少妇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)論
主站蜘蛛池模板: 色综合网亚洲精品久久久 | 中国明星一级毛片免费 | 视频在线观看一区 | 中文字幕在线观看 | 国产++欧洲韩国野花视频 | 国产精品成人免费视频不卡 | 97爱爱爱 | 久草观看视频 | 久久美女网 | 高清国语自产拍免费视频国产 | 玖玖操| 2018中文字幕在线 | 日本高清精品 | 99久久免费看精品 | 国产精品九九九久久九九 | 久久亚洲这里只有精品18 | 高清亚洲| 免费毛片看| 亚洲欧洲一区二区三区 | 亚洲日韩视频免费观看 | 亚洲A片V一区二区三区有声 | 成人不卡 | 欧美毛片网 | 亚洲 欧美 中文字幕 | 亚洲成年人免费网站 | 成人免费看黄网站yyy456 | 国产色在线 | 午夜手机福利 | 日韩欧美在线播放 | 欧美激情综合色综合啪啪五月 | 九色av| 久久久久无码国产精品一区 | 成人久久一区二区 | 亚洲国产精品第一页 | 羞羞视频免费网站在线看 | 久久亚洲国产欧洲精品一 | 欧洲成人午夜免费大片 | 日本wwxx | 国产日韩一区在线精品欧美玲 | 一区二区视屏 | 精品三级在线 |