



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)現(xiàn)循環(huán)隊(duì)列上各種基本運(yùn)算的算法循環(huán)隊(duì)列是一種特殊的隊(duì)列,它的底層實(shí)現(xiàn)是通過數(shù)組來存儲(chǔ)數(shù)據(jù),并通過兩個(gè)指針(front指針和rear指針)來確定隊(duì)頭和隊(duì)尾的位置。循環(huán)隊(duì)列的特點(diǎn)是:隊(duì)滿和隊(duì)空的判定條件相同,即隊(duì)頭指針與隊(duì)尾指針相鄰時(shí),隊(duì)列為滿;隊(duì)頭指針與隊(duì)尾指針相等時(shí),隊(duì)列為空。
循環(huán)隊(duì)列的基本運(yùn)算包括:初始化隊(duì)列、入隊(duì)操作、出隊(duì)操作、獲取隊(duì)頭元素、獲取隊(duì)列長(zhǎng)度、判定隊(duì)空和隊(duì)滿。
1.初始化隊(duì)列
初始化循環(huán)隊(duì)列需要?jiǎng)?chuàng)建一個(gè)指定大小的數(shù)組,并將前后指針(front和rear)都指向數(shù)組的起始位置。代碼如下:
```python
definit_queue(size):
return[None]*size,0,0
```
2.入隊(duì)操作
入隊(duì)操作主要涉及向隊(duì)尾添加元素,并同時(shí)更新rear指針。如果隊(duì)列已滿,則無法添加元素。代碼如下:
```python
defenqueue(queue,item):
size,front,rear=queue
if(rear+1)%size==front:
print("Queueisfull")
else:
queue[rear]=item
queue[2]=(rear+1)%size
```
3.出隊(duì)操作
出隊(duì)操作主要涉及從隊(duì)頭移除元素,并同時(shí)更新front指針。如果隊(duì)列為空,則無法進(jìn)行出隊(duì)操作。代碼如下:
```python
defdequeue(queue):
size,front,rear=queue
iffront==rear:
print("Queueisempty")
else:
item=queue[front]
queue[front]=None
queue[1]=(front+1)%size
returnitem
```
4.獲取隊(duì)頭元素
獲取隊(duì)頭元素操作是指返回隊(duì)列中第一個(gè)元素的值,但不移除元素。代碼如下:
```python
defget_front(queue):
ifqueue[0][0]==queue[0][1]:
print("Queueisempty")
else:
returnqueue[0][queue[1]]
```
5.獲取隊(duì)列長(zhǎng)度
獲取隊(duì)列長(zhǎng)度操作是指返回隊(duì)列中元素的個(gè)數(shù)。代碼如下:
```python
defget_size(queue):
size,front,rear=queue
iffront<=rear:
returnrear-front
else:
returnsize-(front-rear)
```
6.判定隊(duì)空
判定隊(duì)空操作是指判斷隊(duì)列中是否沒有元素。代碼如下:
```python
defis_empty(queue):
returnqueue[1]==queue[2]
```
7.判定隊(duì)滿
判定隊(duì)滿操作是指判斷隊(duì)列中是否已滿。代碼如下:
```python
defis_full(queue):
return(queue[2]+1)%queue[0]==queue[1]
```
這些算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)生物多樣性生物技術(shù)考核試卷
- 火力發(fā)電廠安全生產(chǎn)與應(yīng)急預(yù)案考核試卷
- 微生物檢驗(yàn)實(shí)驗(yàn)設(shè)計(jì)應(yīng)該考慮的因素試題及答案
- 2025年【機(jī)修鉗工(技師)】模擬考試題及答案
- 消費(fèi)金融資產(chǎn)質(zhì)量管理與催收策略考核試卷
- 玩具制造業(yè)的綠色制造挑戰(zhàn)考核試卷
- 煉油廠設(shè)備安裝與調(diào)試的技術(shù)要求考核試卷
- 項(xiàng)目決策工具與技術(shù)的運(yùn)用考核試題及答案
- 磷肥生產(chǎn)過程中的工藝安全評(píng)價(jià)考核試卷
- 電動(dòng)機(jī)制造中的電機(jī)繞組技術(shù)創(chuàng)新考核試卷
- SAP軟件FICO模塊常用增強(qiáng)之一:固定資產(chǎn)的屏幕增強(qiáng)
- 醫(yī)院門診登記本
- 如愿二聲部合唱簡(jiǎn)譜文檔
- GB/T 1531-2020銅及銅合金毛細(xì)管
- GB/T 12785-2002潛水電泵試驗(yàn)方法
- 機(jī)械制圖國(guó)家標(biāo)準(zhǔn)
- 汽車吊起重吊裝方案-
- 陰囊疾病超聲診斷課件
- 信息資產(chǎn)及分級(jí)管理程序
- 信用修復(fù)授權(quán)委托書
- 危大工程驗(yàn)收記錄表(腳手架工程)
評(píng)論
0/150
提交評(píng)論