国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

軟件開發(fā)中常用數(shù)據(jù)結(jié)構(gòu)介紹:C語言隊列

這篇具有很好參考價值的文章主要介紹了軟件開發(fā)中常用數(shù)據(jù)結(jié)構(gòu)介紹:C語言隊列。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

工作之余來寫寫C語言相關(guān)知識,以免忘記。今天就來聊聊C語言實現(xiàn)循環(huán)隊列,我是分享人M哥,目前從事車載控制器的軟件開發(fā)及測試工作。

學(xué)習(xí)過程中如有任何疑問,可底下評論!

如果覺得文章內(nèi)容在工作學(xué)習(xí)中有幫助到你,麻煩點贊收藏評論+關(guān)注走一波!感謝各位的支持!

軟件開發(fā)中常用數(shù)據(jù)結(jié)構(gòu)介紹:C語言隊列,嵌入式C語言,c語言,數(shù)據(jù)結(jié)構(gòu)

今天給大家?guī)硌h(huán)隊列的實現(xiàn)代碼,至于隊列的實現(xiàn)原理,網(wǎng)絡(luò)上有許多詳細的解釋,我這里就不在贅述,直接上代碼;

1.queueCycle.h隊列頭文件

#ifndef QUEUECYCLE_H_
#define QUEUECYCLE_H_

#define FALSE (0)
#define TRUE (1)

/*定義循環(huán)隊列結(jié)構(gòu)*/
typedef struct Queue {
	int* data; /*隊列元素*/
	int size; /*隊列大小*/
	int front; /*隊首*/
	int rear; /*隊尾*/
}Queue_t;

void queue_init(Queue_t* pQueue, int n);
int queue_is_empty(Queue_t* pQueue);
int queue_is_full(Queue_t* pQueue);
int queue_push(Queue_t* pQueue, int* data);
int queue_pop(Queue_t* pQueue, int* data);
int queue_get_front(Queue_t* pQueue, int* value);
void printfQueue(Queue_t* pQueue);

#endif // !1

2.queueCycle.c隊列函數(shù)實現(xiàn)

#include <stdio.h>
#include <stdlib.h>

#include "queueCycle.h"


void queue_init(Queue_t *pQueue, int n) {
	pQueue->data = (int*)malloc((n+1) * sizeof(int));
	pQueue->size = n + 1;
	pQueue->front = 0;
	pQueue->rear = 0;
}

int queue_is_empty(Queue_t *pQueue) {
	return (pQueue->front == pQueue->rear); /*判斷隊列是否為空*/
}

int queue_is_full(Queue_t *pQueue) {
	return (pQueue->front == (pQueue->rear + 1)%pQueue->size); /*判斷隊列是否滿*/
}

int queue_push(Queue_t *pQueue, int *data) {
	if (queue_is_full(pQueue))
	{
		printf("隊列已滿\n");
		return FALSE;
	}
	pQueue->data[pQueue->rear] = *data; /*入隊列*/
	pQueue->rear = (pQueue->rear + 1) % (pQueue->size);
	return TRUE;
}

int queue_pop(Queue_t* pQueue, int* data) {
	if (queue_is_empty(pQueue))
	{
		printf("隊列為空\n");
		return FALSE;
	}
	*data = pQueue->data[pQueue->front];
	pQueue->front = (pQueue->front + 1) % (pQueue->size);
	return TRUE;
}

int queue_get_front(Queue_t *pQueue, int *value) {
	if (queue_is_empty(pQueue))
	{
		return FALSE;
	}
	*value = pQueue->data[pQueue->front];
	return TRUE;
}

void printfQueue(Queue_t *pQueue) {
	if (queue_is_empty(pQueue))
	{
		printf("隊列為空\n");
		return FALSE;
	}
	while (pQueue->front != pQueue->rear) {
		printf("%d ", pQueue->data[pQueue->front]);
		pQueue->front = (pQueue->front + 1) % (pQueue->size);
	}
}

3.main.c主函數(shù)隊列驗證

#include <stdio.h>
#include <stdlib.h>

#include "queueCycle.h"

int main()
{
	int i,n = 5;
	int data = 0;
	Queue_t queue;

	queue_init(&queue, n);
	for (i = 1;i < 6;i++)
	{
		queue_push(&queue, &i);
	}

	for (i = 1;i < 3;i++)
	{
		queue_pop(&queue, &i);
	}
	queue_get_front(&queue, &data);
	printf("%d\n", data);
	/*for (i = 0;i < 5;i++)
	{
		queue_pop(&queue, &i);
		printf("%d", i);
	}*/
	printfQueue(&queue);

}

感謝對本期內(nèi)容不遺余力的學(xué)習(xí),下期內(nèi)容即將奉上,歡迎下次光臨!

軟件開發(fā)中常用數(shù)據(jù)結(jié)構(gòu)介紹:C語言隊列,嵌入式C語言,c語言,數(shù)據(jù)結(jié)構(gòu)文章來源地址http://www.zghlxwxcb.cn/news/detail-669737.html

到了這里,關(guān)于軟件開發(fā)中常用數(shù)據(jù)結(jié)構(gòu)介紹:C語言隊列的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 汽車零部件軟件開發(fā)常用搜索算法

    一、線性搜索(Linear Search) 線性搜索是最基礎(chǔ)的查找算法,適用于對未排序或無特定結(jié)構(gòu)的數(shù)據(jù)集合進行搜索。在C語言中實現(xiàn)時,線性搜索通過遍歷數(shù)組或鏈表中的每一個元素,并與目標值進行比較,直至找到匹配項或者遍歷完所有元素。其時間復(fù)雜度為O(n),其中n代表數(shù)

    2024年02月19日
    瀏覽(28)
  • 汽車零部件軟件開發(fā)中常用濾波算法

    滑動窗口濾波是數(shù)字信號處理中的基本技術(shù),通過在數(shù)據(jù)序列上移動一個固定大小的窗口并計算窗口內(nèi)數(shù)據(jù)點的統(tǒng)計量(如均值或中值)來平滑信號。本文將探討滑動窗口均值濾波和中值濾波的基本實現(xiàn)、工作原理及其局限性,并引入卡爾曼濾波作為一種更高級別的濾波方法

    2024年02月21日
    瀏覽(21)
  • 【鴻蒙軟件開發(fā)】ArkTS常用組件之Button

    【鴻蒙軟件開發(fā)】ArkTS常用組件之Button

    Button是按鈕組件,通常用于響應(yīng)用戶的點擊操作,其類型包括膠囊按鈕、圓形按鈕、普通按鈕。Button當(dāng)做為容器使用時可以通過添加子組件實現(xiàn)包含文字、圖片等元素的按鈕。具體用法請參考Button。 Button通過調(diào)用接口來創(chuàng)建,接口調(diào)用有以下兩種形式: 創(chuàng)建不包含子組件的

    2024年02月02日
    瀏覽(26)
  • 硬件開發(fā)軟件介紹

    硬件開發(fā)軟件介紹

    ??本文主要簡單介紹一下硬件開發(fā)過程中所用到的軟件,并簡要說明一下優(yōu)缺點 ??立創(chuàng)EDA集成了原理圖設(shè)計、PCB設(shè)計的功能,器件庫、封裝庫豐富(而且共享),同時器件可以直接在立創(chuàng)商城采購,pcb制板和芯片貼片都可以在嘉立創(chuàng)進行生產(chǎn)加工,總之,立創(chuàng)集團提供了

    2024年02月08日
    瀏覽(18)
  • 單片機常用的開發(fā)軟件有哪些?

    單片機常用的開發(fā)軟件有哪些?

    開發(fā)工具有很多,踩坑無數(shù)總結(jié): 用得順手、帶仿真調(diào)試功能 的最重要。 特別是帶仿真調(diào)試功能,用熟了,能讓你找Bug效率直接起飛。 下面給大家盤點一些比較常用的單片機開發(fā)工具: 1.Keil μVision ? 這款開發(fā)工具相信是所有做單片機開發(fā)必用的了。 Keil是一種基于Windows系

    2024年02月09日
    瀏覽(18)
  • windows 下 搭建 ElasticSearch 環(huán)境,前端開發(fā)常用軟件

    windows 下 搭建 ElasticSearch 環(huán)境,前端開發(fā)常用軟件

    打開瀏覽器測試: http://localhost:9200 徹底關(guān)閉ES 第三步:將ElasticSearch安裝為Windows服務(wù) 進入bin目錄下執(zhí)行命令: elasticsearch-service.bat install 在windows服務(wù)中查看 elasticsearch-service.bat后面還可以執(zhí)行這些命令 install: 安裝Elasticsearch服務(wù) remove: 刪除已安裝的Elasticsearch服務(wù)(如果啟動則

    2024年04月13日
    瀏覽(25)
  • web組態(tài)軟件開發(fā)詳細流程介紹

    web組態(tài)軟件開發(fā)詳細流程介紹

    組態(tài)軟件是一種用于創(chuàng)建、配置和管理各種工業(yè)控制系統(tǒng)的應(yīng)用程序。它通過用戶友好的圖形界面和先進的功能,使工程師能夠?qū)崟r監(jiān)控和控制復(fù)雜的工業(yè)過程。 一、組態(tài)軟件的基本概念 1.1組態(tài)軟件的作用 組態(tài)軟件在工業(yè)控制系統(tǒng)中起到關(guān)鍵的作用。 它可以實時獲取和展示

    2024年02月20日
    瀏覽(26)
  • 軟件測試開發(fā)工程師常用的測試工具詳解

    軟件測試開發(fā)工程師常用的測試工具詳解

    1. 操作系統(tǒng): Linux: vmware: 用于虛擬化環(huán)境,創(chuàng)建和管理虛擬機。 xshell、xftp、ssh: 提供對Linux服務(wù)器的遠程訪問和文件傳輸。 2. 數(shù)據(jù)庫: MySQL: SQLyog、Navicat: 前端連接工具,簡化MySQL數(shù)據(jù)庫的管理和操作。 Oracle: PLSQL Developer、Navicat: 前端連接工具,用于Oracle數(shù)據(jù)庫的開發(fā)和

    2024年02月02日
    瀏覽(27)
  • 軟件測試/測試開發(fā)丨Selenium的常用元素定位方法

    軟件測試/測試開發(fā)丨Selenium的常用元素定位方法

    Selenium是一個流行的開源框架,目前在 Web 自動化方面運用最為廣泛的一個開源、無瀏覽器要求、可支持多語言、設(shè)計測試用例非常靈活的自動化測試框架。支持多種編程語言,并且能夠模擬用戶操作,例如點擊、輸入、提交等等。 在Selenium中,元素定位是一個非常重要的步驟

    2024年01月16日
    瀏覽(88)
  • 軟件測試/測試開發(fā) | app測試中常用的Android模擬器

    軟件測試/測試開發(fā) | app測試中常用的Android模擬器

    公眾號搜索:TestingStudio 霍格沃茲的干貨都很硬核 測試 Android app 的時候,Android 模擬器是經(jīng)常會用到的工具。模擬器可以輕松的模擬不同的品牌、分辨率和 Android 系統(tǒng)版本??梢宰尲嫒轀y試做起來更容易。 下面就來看看目前常用的 Android 模擬器都有哪些。 Emualor 是 Android St

    2024年02月15日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包