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

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

收企業(yè)做網(wǎng)站備案西安網(wǎng)約車(chē)

收企業(yè)做網(wǎng)站備案,西安網(wǎng)約車(chē),做網(wǎng)站麻煩嗎,寶安網(wǎng)站設(shè)計(jì)案例目錄 前言 1.為啥要使用循環(huán)隊(duì)列 2.隊(duì)列的順序表示和實(shí)現(xiàn) 1.定義 2.初始化 3.銷(xiāo)毀 4.清空 5.空隊(duì)列 6.隊(duì)列長(zhǎng)度 7.獲取隊(duì)頭 8.入隊(duì) 9.出隊(duì) 10.遍歷隊(duì)列 11.完整代碼 前言 本篇博客介紹棧和隊(duì)列的表示和實(shí)現(xiàn)。 1.為啥要使用循環(huán)隊(duì)列 上篇文章中我們知道了順序隊(duì)列…

目錄

前言

1.為啥要使用循環(huán)隊(duì)列

2.隊(duì)列的順序表示和實(shí)現(xiàn)

1.定義

2.初始化

3.銷(xiāo)毀

4.清空

5.空隊(duì)列

6.隊(duì)列長(zhǎng)度

7.獲取隊(duì)頭

8.入隊(duì)

9.出隊(duì)

?10.遍歷隊(duì)列

11.完整代碼


前言

? ? 本篇博客介紹棧和隊(duì)列的表示和實(shí)現(xiàn)。

1.為啥要使用循環(huán)隊(duì)列

? ? 上篇文章中我們知道了順序隊(duì)列的用法,但是順序隊(duì)列有個(gè)缺點(diǎn)就是會(huì)“假溢出”,浪費(fèi)大量的存儲(chǔ)空間,關(guān)于假溢出的問(wèn)題,個(gè)人感覺(jué)數(shù)據(jù)結(jié)構(gòu)里里面的這段解釋比較好,就直接截圖放下面了,大家自行閱讀吧。

圖1.順序隊(duì)列假溢出的問(wèn)題

2.隊(duì)列的順序表示和實(shí)現(xiàn)

1.定義

#define MAX_QUEUE_SIZE 100 // 循環(huán)隊(duì)列的最大容量typedef int Status;
typedef int ElemType;typedef struct {ElemType *data; // 存儲(chǔ)數(shù)據(jù)的數(shù)組int front;      // 頭指針,指向隊(duì)首元素int rear;       // 尾指針,指向隊(duì)尾元素的下一個(gè)位置int maxSize;    // 循環(huán)隊(duì)列的最大容量
} CircularQueue;

2.初始化

? ? ? ? 隊(duì)列初始化的時(shí)候,隊(duì)頭和隊(duì)尾指針均為0

// 初始化循環(huán)隊(duì)列
Status initCircularQueue(CircularQueue *queue, int maxSize) {queue->data = (ElemType *)malloc(sizeof(ElemType) * maxSize);if (!queue->data) {return 0; // 內(nèi)存分配失敗}queue->front = queue->rear = 0;queue->maxSize = maxSize;return 1; // 初始化成功
}

3.銷(xiāo)毀

? ? ? ? ? 釋放隊(duì)列存儲(chǔ)空間

// 銷(xiāo)毀循環(huán)隊(duì)列
void destroyCircularQueue(CircularQueue *queue) {free(queue->data);
}

4.清空

// 清空循環(huán)隊(duì)列
void clearCircularQueue(CircularQueue *queue) {queue->front = queue->rear = 0;
}

5.空隊(duì)列

? ? ? ? 隊(duì)頭和隊(duì)尾相同的時(shí)候?yàn)榭贞?duì)列。

// 判斷循環(huán)隊(duì)列是否為空
Status isEmptyCircularQueue(CircularQueue *queue) {return queue->front == queue->rear;
}

6.隊(duì)列長(zhǎng)度

? ? ? ? 比較棧頂和棧頂?shù)闹羔?/p>

// 獲取循環(huán)隊(duì)列長(zhǎng)度
int circularQueueLength(CircularQueue *queue) {return (queue->rear - queue->front + queue->maxSize) % queue->maxSize;
}

7.獲取隊(duì)頭

? ? ? ? 獲取隊(duì)頭元素。

// 獲取循環(huán)隊(duì)列的隊(duì)首元素
Status getCircularQueueFront(CircularQueue *queue, ElemType *element) {if (isEmptyCircularQueue(queue)) {return 0; // 隊(duì)列為空}*element = queue->data[queue->front];return 1; // 成功獲取隊(duì)首元素
}

8.入隊(duì)

// 入隊(duì)
Status enCircularQueue(CircularQueue *queue, ElemType element) {if ((queue->rear + 1) % queue->maxSize == queue->front) {return 0; // 隊(duì)列已滿(mǎn)}queue->data[queue->rear] = element;queue->rear = (queue->rear + 1) % queue->maxSize;return 1; // 入隊(duì)成功
}

9.出隊(duì)

// 出隊(duì)
Status deCircularQueue(CircularQueue *queue, ElemType *element) {if (isEmptyCircularQueue(queue)) {return 0; // 隊(duì)列為空}*element = queue->data[queue->front];queue->front = (queue->front + 1) % queue->maxSize;return 1; // 出隊(duì)成功
}

?10.遍歷隊(duì)列

// 遍歷循環(huán)隊(duì)列
void traverseCircularQueue(CircularQueue *queue) {for (int i = queue->front; i != queue->rear; i = (i + 1) % queue->maxSize) {printf("%d ", queue->data[i]);}printf("\n");
}

11.完整代碼

int main(int argc, const char *argv[]) {CircularQueue queue;int maxSize = 10; // 循環(huán)隊(duì)列的最大容量initCircularQueue(&queue, maxSize); // 初始化循環(huán)隊(duì)列// 測(cè)試入隊(duì)for (int i = 1; i <= 5; ++i) {enCircularQueue(&queue, i * 10);}// 輸出隊(duì)列元素printf("隊(duì)列元素:");traverseCircularQueue(&queue);// 獲取隊(duì)首元素ElemType frontElement;if (getCircularQueueFront(&queue, &frontElement)) {printf("隊(duì)首元素:%d\n", frontElement);}// 測(cè)試出隊(duì)ElemType element;for (int i = 0; i < 3; ++i) {if (deCircularQueue(&queue, &element)) {printf("出隊(duì)元素:%d\n", element);}}// 輸出隊(duì)列元素printf("隊(duì)列元素:");traverseCircularQueue(&queue);// 判斷隊(duì)列是否為空if (isEmptyCircularQueue(&queue)) {printf("隊(duì)列為空\(chéng)n");} else {printf("隊(duì)列不為空\(chéng)n");}// 獲取隊(duì)列長(zhǎng)度printf("隊(duì)列長(zhǎng)度:%d\n", circularQueueLength(&queue));// 清空隊(duì)列clearCircularQueue(&queue);// 判斷隊(duì)列是否為空if (isEmptyCircularQueue(&queue)) {printf("清空隊(duì)列后,隊(duì)列為空\(chéng)n");} else {printf("清空隊(duì)列后,隊(duì)列不為空\(chéng)n");}// 銷(xiāo)毀隊(duì)列destroyCircularQueue(&queue);return 0;
}
http://m.aloenet.com.cn/news/41873.html

相關(guān)文章:

  • 在哪個(gè)網(wǎng)站做淘寶水印資源
  • 承德網(wǎng)站制作青島優(yōu)化網(wǎng)站關(guān)鍵詞
  • 網(wǎng)站開(kāi)發(fā)費(fèi)用清單淘寶指數(shù)官網(wǎng)
  • 頁(yè)面模板怎么修改鄭州seo排名優(yōu)化公司
  • 威海哪家網(wǎng)站做的好北京seo招聘信息
  • 襄陽(yáng)哪里有做網(wǎng)站的手機(jī)app開(kāi)發(fā)
  • 做兼職最靠譜的網(wǎng)站淘寶網(wǎng)站的推廣與優(yōu)化
  • 學(xué)做網(wǎng)站開(kāi)發(fā)seo排名策略
  • 滄州做網(wǎng)站公司百度指數(shù)app下載
  • 商城網(wǎng)站建設(shè)咨詢(xún)網(wǎng)站seo優(yōu)化心得
  • 旅行社應(yīng)做哪些網(wǎng)站網(wǎng)絡(luò)營(yíng)銷(xiāo)成功案例分析其成功原因
  • 循環(huán)視頻做網(wǎng)站背景百度知道問(wèn)答
  • 深圳家居網(wǎng)站建設(shè)公司青島app開(kāi)發(fā)公司
  • 免費(fèi)咨詢(xún)婦科醫(yī)生在線(xiàn)seo推廣百度百科
  • html個(gè)人網(wǎng)站完整代碼北京網(wǎng)站優(yōu)化指導(dǎo)
  • 如何搭建一個(gè)論壇網(wǎng)站企業(yè)網(wǎng)站設(shè)計(jì)圖片
  • 沭陽(yáng)網(wǎng)站設(shè)計(jì)蘭州百度推廣的公司
  • 坪山建設(shè)網(wǎng)站網(wǎng)絡(luò)推廣員
  • wordpress 手動(dòng)安裝seo怎么做教程
  • 餐飲公司網(wǎng)站建設(shè)的特點(diǎn)免費(fèi)b站推廣網(wǎng)址有哪些
  • 網(wǎng)站底部代碼下載百度文庫(kù)首頁(yè)
  • python網(wǎng)站開(kāi)發(fā)實(shí)踐免費(fèi)網(wǎng)站申請(qǐng)域名
  • 自己做的網(wǎng)站可以有多個(gè)前端嗎網(wǎng)站建設(shè)公司是怎么找客戶(hù)
  • 網(wǎng)站建設(shè) 上市公司杭州網(wǎng)站seo外包
  • 網(wǎng)站開(kāi)發(fā)還找到工作嗎鏈網(wǎng)
  • 做網(wǎng)站建設(shè)要什么證小網(wǎng)站
  • 影樓網(wǎng)站推廣seo系統(tǒng)優(yōu)化
  • 網(wǎng)站建設(shè)方案模板高校引流軟件下載站
  • 做優(yōu)化網(wǎng)站是什么意思誰(shuí)有推薦的網(wǎng)址
  • 有什么好看的網(wǎng)站seo系統(tǒng)培訓(xùn)