中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

企業(yè)免費(fèi)郵箱注冊(cè)申請(qǐng)家庭優(yōu)化大師

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

目錄

一、前言

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

2.如何判斷隊(duì)列為空?

3.如何判斷隊(duì)列為滿?

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

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

四、入隊(duì)

五、出隊(duì)

六、取隊(duì)頭元素

七、取隊(duì)尾元素

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

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

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


一、前言

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

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

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

2.如何判斷隊(duì)列為空?

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

3.如何判斷隊(duì)列為滿?

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

兩種解決方法:

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

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

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

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

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

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

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

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

//方法一
//循環(huán)隊(duì)列創(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;
}

四、入隊(duì)

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

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

五、出隊(duì)

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

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

六、取隊(duì)頭元素

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

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

七、取隊(duì)尾元素

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

//方法一
//取隊(duì)尾元素
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)隊(duì)列判空

通過size判空即可

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

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

通過size判滿即可

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

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

動(dòng)態(tài)申請(qǐng)的內(nèi)存空間需要?jiǎng)討B(tài)銷毀

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

相關(guān)文章:

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