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

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

選服務(wù)好的網(wǎng)站建設(shè)公司廣州私人做網(wǎng)站

選服務(wù)好的網(wǎng)站建設(shè)公司,廣州私人做網(wǎng)站,無錫網(wǎng)站制作哪家便宜,濟(jì)南君哲網(wǎng)站建設(shè)公司提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 文章目錄 前言 一、隊(duì)列 1.1隊(duì)列的概念及結(jié)構(gòu) 二、隊(duì)列的實(shí)現(xiàn) 2.1頭文件的實(shí)現(xiàn)—Queue.h 2.2源文件的實(shí)現(xiàn)—Queue.c 2.3源文件的測(cè)試—test.c 三、測(cè)試隊(duì)列實(shí)際數(shù)據(jù)的展示 3.…

提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔

文章目錄

前言

一、隊(duì)列

1.1隊(duì)列的概念及結(jié)構(gòu)

二、隊(duì)列的實(shí)現(xiàn)

2.1頭文件的實(shí)現(xiàn)—Queue.h

2.2源文件的實(shí)現(xiàn)—Queue.c

2.3源文件的測(cè)試—test.c

三、測(cè)試隊(duì)列實(shí)際數(shù)據(jù)的展示

3.1正常隊(duì)列的出入

3.2入隊(duì)列的同時(shí)存在出隊(duì)列

總結(jié)


前言

世上有兩種耀眼的光芒,一種是正在升起的太陽,一種是正在努力學(xué)習(xí)編程的你!一個(gè)愛學(xué)編程的人。各位看官,我衷心的希望這篇博客能對(duì)你們有所幫助,同時(shí)也希望各位看官能對(duì)我的文章給與點(diǎn)評(píng),希望我們能夠攜手共同促進(jìn)進(jìn)步,在編程的道路上越走越遠(yuǎn)!


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、隊(duì)列

1.1隊(duì)列的概念及結(jié)構(gòu)

隊(duì)列:只允許在一端進(jìn)行插入數(shù)據(jù)操作,在另一端進(jìn)行刪除數(shù)據(jù)操作的特殊線性表,隊(duì)列具有先進(jìn)先出FIFO(First In First Out)

入隊(duì)列:進(jìn)行插入操作的一端稱為隊(duì)尾

出隊(duì)列:進(jìn)行刪除操作的一端稱為隊(duì)頭

二、隊(duì)列的實(shí)現(xiàn)

隊(duì)列(先進(jìn)先出)有三種實(shí)現(xiàn)方案:數(shù)組、單向鏈表、雙向鏈表
數(shù)組:隊(duì)列是對(duì)尾入,對(duì)頭出,但是數(shù)組尾插還可以,但是頭刪還得挪動(dòng)數(shù)據(jù),所以非常不方便的
單鏈表:單鏈表尾插入隊(duì)列方便,頭刪也方便

2.1頭文件的實(shí)現(xiàn)—Queue.h

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>typedef int QDataType;typedef struct QueueNode
{QDataType val;struct QueueNode* next;
}QNode;//尾入(*單向鏈表,我們要找尾,進(jìn)行尾插,所以我們需要把頭節(jié)點(diǎn)和尾節(jié)點(diǎn)的指針傳進(jìn)來,
//但是要進(jìn)行頭刪,得頻繁改變第一個(gè)節(jié)點(diǎn)得地址,所以我們得用二級(jí)指針,這樣就更麻煩了)
//void QueuePush(QNode* phead,QNode* ptail, QDataType x);
頭出
//void QueuePop(QNode* phead);typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;//尾入(我們把第一個(gè)節(jié)點(diǎn)和尾節(jié)點(diǎn)放入一個(gè)結(jié)構(gòu)體中,
//然后可以改變結(jié)構(gòu)體成員,就可以實(shí)現(xiàn)第一個(gè)節(jié)點(diǎn)地址的頻繁的更換)
void QueuePush(Queue* pq, QDataType x);
//頭出
void QueuePop(Queue* pq);//初始化
void QueueInit(Queue* pq);
//銷毀
void QueueDestroy(Queue* pq);//取隊(duì)頭的數(shù)據(jù)
QDataType QueueFront(Queue* pq);
//取隊(duì)尾的數(shù)據(jù)
QDataType QueueBack(Queue* pq);//獲取隊(duì)列中有效元素個(gè)數(shù)
int QueueSize(Queue* pq);
//檢測(cè)隊(duì)列是否為空,如果為空返回非零結(jié)果,如果非空返回0 
bool QueueEmpty(Queue* pq);

2.2源文件的實(shí)現(xiàn)—Queue.c

#define _CRT_SECURE_NO_WARNINGS 1#include "queue.h"//尾入(我們把第一個(gè)節(jié)點(diǎn)和尾節(jié)點(diǎn)放入一個(gè)結(jié)構(gòu)體中,
//然后可以改變結(jié)構(gòu)體成員,就可以實(shí)現(xiàn)第一個(gè)節(jié)點(diǎn)地址的頻繁的更換)
void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc fail");return;}newnode->val = x;newnode->next = NULL;if (pq->ptail == NULL){pq->phead = pq->ptail = newnode;}else{pq->ptail->next = newnode;pq->ptail = newnode;}pq->size++;
}
//頭出
void QueuePop(Queue* pq)
{assert(pq);//如果只剩一個(gè)節(jié)點(diǎn)的時(shí)候,phead往后走,此時(shí)ptail就是野指針assert(pq->phead);QNode* del = pq->phead;pq->phead = pq->phead->next;free(del);del = NULL;if (pq->phead == NULL){pq->ptail = NULL;}pq->size--;
}//初始化
void QueueInit(Queue* pq)
{assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}//銷毀
void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->phead;while (cur){QNode* next = cur->next;free(cur);cur = next;}pq->phead = pq->ptail = NULL;
}//取隊(duì)頭的數(shù)據(jù)
QDataType QueueFront(Queue* pq)
{assert(pq);assert(pq->phead);return pq->phead->val;
}
//取隊(duì)尾的數(shù)據(jù)
QDataType QueueBack(Queue* pq)
{assert(pq);assert(pq->ptail);return pq->ptail->val;
}//獲取隊(duì)列中有效元素個(gè)數(shù)
int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}
//檢測(cè)隊(duì)列是否為空,如果為空返回非零結(jié)果,如果非空返回0 
bool QueueEmpty(Queue* pq)
{assert(pq);return pq->phead == NULL;
}

2.3源文件的測(cè)試—test.c

#include "queue.h"int main()
{Queue q;QueueInit(&q);QueuePush(&q, 1);QueuePush(&q, 2);QueuePush(&q, 3);QueuePush(&q, 4);QueuePush(&q, 5);while (!QueueEmpty(&q)){printf("%d ", QueueFront(&q));QueuePop(&q);}QueueDestroy(&q);return 0;
}

三、測(cè)試隊(duì)列實(shí)際數(shù)據(jù)的展示

1、出入隊(duì)列的方式:隊(duì)尾插入數(shù)據(jù),對(duì)頭刪除數(shù)據(jù)

2、出隊(duì)列和入隊(duì)列的關(guān)系:一對(duì)一的

3.1正常隊(duì)列的出入

3.2入隊(duì)列的同時(shí)存在出隊(duì)列


總結(jié)

好了,本篇博客到這里就結(jié)束了,如果有更好的觀點(diǎn),請(qǐng)及時(shí)留言,我會(huì)認(rèn)真觀看并學(xué)習(xí)。
不積硅步,無以至千里;不積小流,無以成江海。

http://www.risenshineclean.com/news/3144.html

相關(guān)文章:

  • 武漢做網(wǎng)站哪家公司好優(yōu)化大師如何刪掉多余的學(xué)生
  • 陽江兼職招聘網(wǎng)最新招聘站外seo是什么
  • 企業(yè)網(wǎng)站模板建站seo工作內(nèi)容
  • 個(gè)人網(wǎng)站收款接口windows優(yōu)化大師是系統(tǒng)軟件嗎
  • 粉色做網(wǎng)站背景圖片win7怎么優(yōu)化最流暢
  • 網(wǎng)站建設(shè)技術(shù)服務(wù)公司sem分析是什么意思
  • 服務(wù)器做視頻網(wǎng)站松原今日頭條新聞
  • 用什么做視頻網(wǎng)站蘇州關(guān)鍵詞優(yōu)化排名推廣
  • 盛世陽光-網(wǎng)站建設(shè)吸引人氣的營銷方案
  • 做編程的+網(wǎng)站有哪些內(nèi)容市場(chǎng)營銷方案怎么寫
  • 石家莊新冠疫情最新情況廣州seo優(yōu)化外包服務(wù)
  • 博羅縣建設(shè)局網(wǎng)站房管局備案查詢網(wǎng)站
  • 杭州網(wǎng)站案列互聯(lián)網(wǎng)營銷培訓(xùn)
  • 網(wǎng)站區(qū)分英文seo是什么
  • 最好的網(wǎng)站建設(shè)系統(tǒng)下拉框關(guān)鍵詞軟件
  • 廣西建設(shè)廳微信網(wǎng)站長春seo排名外包
  • 紅酒商城網(wǎng)站建設(shè)方案書巢湖seo推廣
  • 網(wǎng)店美工設(shè)計(jì)模板青島seo推廣
  • 濰坊網(wǎng)站排名公司寧波網(wǎng)站seo診斷工具
  • 招遠(yuǎn)網(wǎng)站建設(shè)價(jià)格有什么推廣的平臺(tái)
  • 網(wǎng)站建設(shè)運(yùn)營公眾號(hào)運(yùn)營合同做網(wǎng)絡(luò)推廣怎么收費(fèi)
  • 做網(wǎng)站的得多少錢360排名檢測(cè)
  • 做文案的人看什么網(wǎng)站制作公司網(wǎng)站
  • 專業(yè)的免費(fèi)建站一個(gè)公司可以做幾個(gè)百度推廣
  • wordpress是h5頁面seo優(yōu)化服務(wù)價(jià)格
  • 合肥網(wǎng)站建設(shè)5k5seo軟件優(yōu)化
  • 怎么建立一個(gè)網(wǎng)站?互聯(lián)網(wǎng)營銷怎么做
  • 做算命類網(wǎng)站違法嗎?商業(yè)推廣
  • 駐馬店住房和城鄉(xiāng)建設(shè)廳網(wǎng)站seo在線優(yōu)化工具 si
  • 國外設(shè)計(jì)網(wǎng)站h開頭推廣下載app賺錢