python入門與基礎(chǔ)第四講-線性數(shù)據(jù)結(jié)構(gòu)part ii queuestack_第1頁
python入門與基礎(chǔ)第四講-線性數(shù)據(jù)結(jié)構(gòu)part ii queuestack_第2頁
python入門與基礎(chǔ)第四講-線性數(shù)據(jù)結(jié)構(gòu)part ii queuestack_第3頁
python入門與基礎(chǔ)第四講-線性數(shù)據(jù)結(jié)構(gòu)part ii queuestack_第4頁
python入門與基礎(chǔ)第四講-線性數(shù)據(jù)結(jié)構(gòu)part ii queuestack_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Python入門與基Queue&Stack老掃 獲 :知乎專欄 : 官網(wǎng): Copyright? 請(qǐng)不要缺Copyright? 本節(jié)棧原理及實(shí)隊(duì)列原理實(shí)現(xiàn)及使用Python的Queue模算法的時(shí)間、空間復(fù)雜Copyright? 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)=數(shù)據(jù) 方式+操數(shù)據(jù) 什么數(shù)據(jù)?如int,string類方式-如何組織數(shù)據(jù),數(shù)據(jù)之間的關(guān)系操作-如何快速 查詢數(shù)據(jù),寫入數(shù)據(jù)到數(shù)據(jù)結(jié)構(gòu)中寫入數(shù)數(shù)

數(shù)據(jù)結(jié)

654321654321數(shù)據(jù)結(jié)構(gòu)不要求數(shù)據(jù)的順序 成本比如:List列125-3222Copyright? 數(shù)據(jù)結(jié)構(gòu) 1248插入數(shù)Copyright? 什么是棧棧是一種后進(jìn)先出(lastinfirstout,LIFO)的線性數(shù)據(jù)結(jié)Copyright? 棧的操 彈出一個(gè)元素 獲取棧頂元素empty判斷棧是否為空Copyright? Copyright棧的操作示 CopyrightStackStackReturn32棧的實(shí)使用基于List實(shí)現(xiàn)Copyright? 面 ImplementImplement /en/problem/implement- /solutions/implement-Copyright? 面 ValidValid Copyright? Queue隊(duì)Copyright? 隊(duì)什么是隊(duì)列里排隊(duì)打過安檢的時(shí)候排隊(duì)列是一種先進(jìn)先出(firstinfirstout,F(xiàn)IFO)的線性數(shù)據(jù)結(jié)Copyright? Queue提供的接口Queue()定義一個(gè)空隊(duì)列,無參數(shù),返回值是空隊(duì)enqueue(item)在隊(duì)列尾部加入一個(gè)數(shù)據(jù)項(xiàng),參數(shù)是數(shù)據(jù)項(xiàng),無返回dequeue()刪除隊(duì)列頭部的數(shù)據(jù)項(xiàng),不需要參數(shù),返回值是被刪除的據(jù),隊(duì)列本身有變isEmpty()檢測(cè)隊(duì)列是否為空。無參數(shù),返回布爾size()返回隊(duì)列數(shù)據(jù)項(xiàng)的數(shù)量。無參數(shù),返回一個(gè)整Copyright? 隊(duì)列提供Queue模塊中隊(duì)列的提供的結(jié)putenqueue)元素進(jìn)隊(duì)getdequeue)元素出對(duì)

判斷隊(duì)列是為Copyright? 隊(duì)隊(duì)列的實(shí)使用ListNode實(shí)現(xiàn)使用Queue模Copyright? 基于ListNode的1543Copyright? put插入一個(gè)Value-1543Copyright? get取出隊(duì)列頭部元素的1543得到Head指1543Head往后移動(dòng)來到下一個(gè)返回1這個(gè)Copyright? empty判斷對(duì)列為1543Copyright? 面 ImplementQueuebyLinkedImplementQueuebyLinked Copyright? Python提供的Queue模Python中隊(duì)列是線程間最常用的交換數(shù)據(jù)的方式(在爬蟲中我們會(huì)使用它如果maxsize小于1就表示隊(duì)列長度無

定隊(duì)列長Copyright? PUT元素放入隊(duì)put()方法在 入一個(gè)元素,如果隊(duì)列是滿的,該線程會(huì)阻塞(等待),到空出一個(gè)位置來,然后在隊(duì)尾放入元Copyright? get()方法從隊(duì)頭刪除并返回一個(gè)項(xiàng)目,隊(duì)列為空默認(rèn)為阻塞線程(等待)到有元素放入到隊(duì)列之后,將其取走Copyright? Python使用Queue實(shí)現(xiàn)生產(chǎn)者消費(fèi)什么是生產(chǎn)者消費(fèi)者模當(dāng)某模塊或者組件負(fù)責(zé)生產(chǎn)數(shù)據(jù),然后這些數(shù)據(jù)由其他模塊或者組件負(fù)責(zé)處理(此處的模塊可能是:函數(shù)、線程、進(jìn)程等產(chǎn)生數(shù)據(jù)的模塊或者組件稱為生產(chǎn)者,而處理數(shù)據(jù)的模塊稱為消費(fèi)在生產(chǎn)者與消費(fèi)者之間有緩沖區(qū),生產(chǎn)者負(fù)責(zé)往緩沖區(qū)放數(shù)據(jù),消費(fèi)負(fù)責(zé)從緩沖 數(shù)據(jù),這就形成了生產(chǎn)者消費(fèi)者模式Copyright? 生產(chǎn)者消費(fèi)生產(chǎn)生產(chǎn)

生產(chǎn)

消費(fèi)消費(fèi)

消費(fèi)生產(chǎn)

消費(fèi)

消費(fèi)Copyright? 生產(chǎn)者消費(fèi)者模式的優(yōu)解如果消費(fèi)者直接調(diào)用生產(chǎn)者的代碼碼會(huì)相互產(chǎn)生依賴(耦合通過中間的緩沖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論