国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

企業(yè)免費郵箱注冊申請家庭優(yōu)化大師

企業(yè)免費郵箱注冊申請,家庭優(yōu)化大師,wordpress 增加表,凡客誠品還有嗎目錄 一、前言 1.如何實現(xiàn)循環(huán)? 2.如何判斷隊列為空? 3.如何判斷隊列為滿? 二、循環(huán)隊列的結(jié)構(gòu)定義 三、循環(huán)隊列的創(chuàng)建及其初始化 四、入隊 五、出隊 六、取隊頭元素 七、取隊尾元素 八、循環(huán)隊列判空 九、循環(huán)隊列判滿 十、循環(huán)…

目錄

一、前言

1.如何實現(xiàn)循環(huán)?

2.如何判斷隊列為空?

3.如何判斷隊列為滿?

二、循環(huán)隊列的結(jié)構(gòu)定義

三、循環(huán)隊列的創(chuàng)建及其初始化

四、入隊

五、出隊

六、取隊頭元素

七、取隊尾元素

八、循環(huán)隊列判空

九、循環(huán)隊列判滿

十、循環(huán)隊列銷毀


一、前言

利用數(shù)組實現(xiàn)循環(huán)隊列,重點要解決的問題有三個:

1.如何實現(xiàn)循環(huán)?

由于數(shù)組大小k是確定的,要實現(xiàn)隊列循環(huán)就需要讓數(shù)組下標(biāo)循環(huán),利用兩個下標(biāo)front、back分別指向首元素和尾元素的下一個位置。front = (front+1) % k,back = (back+1) % k,即可完成下標(biāo)的循環(huán)。

2.如何判斷隊列為空?

初始化時,front和back都為0,此時為空。因此我們確定判空條件為 front = back時循環(huán)隊列為空。

3.如何判斷隊列為滿?

我們發(fā)現(xiàn),當(dāng)隊列滿時,由于back指向隊尾元素的下一個,因此隊列滿時,front = back ,與隊列空時相矛盾。如何解決呢?

兩種解決方法:

一是:循環(huán)隊列結(jié)構(gòu)中新增隊列大小 size ,當(dāng)size=0且front = back時,隊列為空;當(dāng)size≠0且front = back時,隊列為滿。

二是:新增一個空間,不存儲數(shù)據(jù),front = (front+1) % (k+1),back = (back+1) % (k+1),當(dāng) (back+1) % (k+1) = front時,隊列為滿。

本文僅講解方法一,方法二詳解:數(shù)組實現(xiàn)循環(huán)隊列(新增一個空間)-CSDN博客

二、循環(huán)隊列的結(jié)構(gòu)定義

循環(huán)隊列的結(jié)構(gòu)中包含數(shù)組、頭指針、尾指針、隊列容量、隊列大小(隊列大小用于區(qū)分隊列空與滿的情況)

//方法一
typedef int MCQDataType;
//循環(huán)隊列結(jié)構(gòu)定義
typedef struct {MCQDataType *a;int front;//頭指針,指向隊頭元素int back;//尾指針,指向隊尾元素的下一個位置int size;//隊列大小int k;//隊列容量
} MyCircularQueue;

三、循環(huán)隊列的創(chuàng)建及其初始化

為循環(huán)隊列動態(tài)申請一個內(nèi)存空間,再將頭指針、尾指針、隊列大小都初始化為0,隊列容量為k

//方法一
//循環(huán)隊列創(chuàng)建及其初始化
MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* mcq=(MyCircularQueue*)malloc(sizeof(MyCircularQueue));mcq->a=(MCQDataType*)malloc(sizeof(MCQDataType)*(k));mcq->front=mcq->back=mcq->size=0;mcq->k=k;return mcq;
}

四、入隊

先通過size判斷隊列是否滿,不滿再將數(shù)據(jù)入隊,同時尾指針要? 加1模k (back = (back+1) % k)?

//方法一
//入隊
bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(obj->size==obj->k)//隊列已滿{return false;}obj->a[obj->back]=value;obj->back=(obj->back+1)%obj->k;obj->size++;return true;
}

五、出隊

先通過size判斷隊列是否空,不空再將數(shù)據(jù)出隊,同時頭指針要? 加1模k?(front = (front+1) % k)

//方法一
//出隊
bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(obj->size==0)//隊列為空{(diào)return false;}obj->front=(obj->front+1)%obj->k;obj->size--;return true;
}

六、取隊頭元素

先通過size判斷隊列是否為空,不空直接返回隊頭元素即可

//方法一
//取隊頭元素
int myCircularQueueFront(MyCircularQueue* obj) {if(obj->size==0)//隊列為空{(diào)return -1;}return obj->a[obj->front];
}

七、取隊尾元素

先通過size判斷隊尾是否為空。由于尾指針指向的是隊尾元素的下一個位置,所以需要返回back-1位置的元素。由此需要判斷尾指針是否指向0位置,如果指向0位置則不能back-1,否則越界,需要返回數(shù)組的最后一個位置元素,即k-1的位置;如果不指向0位置,則返回back-1位置的元素即可。

//方法一
//取隊尾元素
int myCircularQueueRear(MyCircularQueue* obj) {if(obj->size==0){return -1;}if(obj->back==0){return obj->a[obj->k-1];}else{return obj->a[obj->back-1];}
}

八、循環(huán)隊列判空

通過size判空即可

//方法一
//循環(huán)隊列判空
bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->size==0;
}

九、循環(huán)隊列判滿

通過size判滿即可

//方法一
//循環(huán)隊列判滿
bool myCircularQueueIsFull(MyCircularQueue* obj) {return obj->size==obj->k;
}

十、循環(huán)隊列銷毀

動態(tài)申請的內(nèi)存空間需要動態(tài)銷毀

//方法一
//循環(huán)隊列銷毀
void myCircularQueueFree(MyCircularQueue* obj) {free(obj->a);free(obj);
}
http://m.aloenet.com.cn/news/43740.html

相關(guān)文章:

  • 白城網(wǎng)站開發(fā)為企業(yè)策劃一次網(wǎng)絡(luò)營銷活動
  • 美食網(wǎng)站建設(shè)畢業(yè)設(shè)計產(chǎn)品推廣計劃書怎么寫
  • 外貿(mào)網(wǎng)站建站公司專業(yè)推廣圖片
  • 網(wǎng)站制作公司 番禺網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷
  • 營口網(wǎng)站建設(shè)做網(wǎng)站seo推廣公司
  • 海珠區(qū)做網(wǎng)站的公司如何讓百度收錄自己的網(wǎng)站信息
  • 創(chuàng)建全國文明城市我們在行動繪畫優(yōu)化seo教程技術(shù)
  • 網(wǎng)站建設(shè)工作流程html互聯(lián)網(wǎng)營銷師怎么做
  • 對網(wǎng)站排名沒有太大影響的因素網(wǎng)站備案查詢
  • 免費微網(wǎng)站建站系統(tǒng)百度官方認證
  • 免費創(chuàng)辦網(wǎng)站印度疫情最新消息
  • 99到家網(wǎng)站怎么做客戶關(guān)系管理
  • 娛樂網(wǎng)站建設(shè)公司營銷軟件有哪些
  • 怎么搭建自己的博客網(wǎng)站百度網(wǎng)頁版入口鏈接
  • 有名網(wǎng)站建設(shè)公司百度網(wǎng)盤pc端網(wǎng)頁版
  • 網(wǎng)站建設(shè)測試流程圖友情鏈接如何添加
  • 怎么增加網(wǎng)站的外鏈學(xué)校網(wǎng)站建設(shè)
  • 網(wǎng)站設(shè)計任務(wù)書范文站長工具seo綜合查詢訪問
  • 精通網(wǎng)站建設(shè) 全能建站密碼pdf理發(fā)美發(fā)培訓(xùn)學(xué)校
  • 公司網(wǎng)站制作推廣公司
  • 電子商務(wù)網(wǎng)站有哪幾種搜索引擎營銷的常見方式
  • 網(wǎng)站代理游戲合川網(wǎng)站建設(shè)
  • 蘇州專業(yè)高端網(wǎng)站建設(shè)公司專業(yè)制作網(wǎng)站的公司哪家好
  • 泰州網(wǎng)站建設(shè)服務(wù)熱線全網(wǎng)推廣軟件
  • 免費推廣網(wǎng)站2023mmm網(wǎng)絡(luò)營銷項目
  • 桐鄉(xiāng)住房和城鄉(xiāng)規(guī)劃建設(shè)局網(wǎng)站如何做網(wǎng)絡(luò)銷售產(chǎn)品
  • 上海網(wǎng)站設(shè)計工具網(wǎng)絡(luò)推廣運營團隊
  • 建設(shè)廳特種作業(yè)證件查詢官網(wǎng)網(wǎng)站優(yōu)化推廣公司
  • 重慶品牌網(wǎng)站建設(shè)優(yōu)化網(wǎng)站排名方法
  • 網(wǎng)站設(shè)計導(dǎo)航欄高度佛山市人民政府門戶網(wǎng)站