欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列

 更新時(shí)間:2020年07月27日 14:07:08   作者:AdvancedPawn  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列的具體代碼,供大家參考,具體內(nèi)容如下

注意事項(xiàng):

1、循環(huán)隊(duì)列,是隊(duì)列的順序表示和實(shí)現(xiàn)。因?yàn)槭俏策M(jìn)頭出,所以和順序棧不同的是需要將順序隊(duì)列臆造成一個(gè)環(huán)狀的空間,以便在尾部添加滿之后從頭部空位開(kāi)始插入。
2、也可以使用數(shù)組隊(duì)列,也就是不能動(dòng)態(tài)增長(zhǎng)的順序隊(duì)列,這樣不需要每次取模最大值來(lái)構(gòu)成環(huán)形空間。每次插入新的隊(duì)列尾元素時(shí),尾指針增1,每當(dāng)刪除隊(duì)列頭元素時(shí),頭指針增1。
3、尾指針會(huì)出現(xiàn)在頭指針之前,由此特性,循環(huán)隊(duì)列在無(wú)法預(yù)估使用大小時(shí),不宜使用。
4、在每一個(gè)指針遞增的表達(dá)式中,都要加上一個(gè)% MAXQUEUE已使得每一次增值都在范圍內(nèi)。

#include<stdio.h>
#include<stdlib.h>
#define MAXQUEUE 100
typedef struct
{
 int *base;
 int front;
 int rear;
}SqQueue, *Sqqueue;
 
Sqqueue Creat(Sqqueue q);
void Enqueue(Sqqueue q, int e);
void Dequeue(Sqqueue q, int *e);
void Traverse(Sqqueue q);
 
int main()
{
 SqQueue q;
 int e;
 Sqqueue p = Creat(&q);
 Traverse(p);
 Dequeue(p, &e);
 Traverse(p);
 printf("the number that was deleted is :%d", e);
 return 0;
}
 
Sqqueue Creat(Sqqueue q)
{
 Sqqueue p = q;
 p->base = (int *)malloc(MAXQUEUE * sizeof(int));//這里注意和鏈不同,開(kāi)辟的是整片的數(shù)據(jù)空間,以base為基址
 p->front = p->rear = 0;             
 for (int i = 1; i < 10; i++)
 Enqueue(p, i);
 return p;
}
void Enqueue(Sqqueue q, int e)
{
 if ((q->rear + 1) % MAXQUEUE == q->front) //如果尾指針下一個(gè)是頭指針,即將其看成滿隊(duì)列(少利用一個(gè)空間)。否則只看頭指針等于尾指針會(huì)有歧義。
 exit(1);
 q->base[q->rear] = e;
 q->rear = (q->rear + 1) % MAXQUEUE;
 
}
void Dequeue(Sqqueue q, int *e)
{
 if (q->front == q->rear)
 exit(1);
 (*e) = q->base[q->front];
 q->front = (q->front + 1) % MAXQUEUE;
}
void Traverse(Sqqueue q)
{
 for (int i = q->front; q->rear != i; i = (i + 1) % MAXQUEUE)
 printf("%d->", q->base[i]);
 printf("NULL\n");
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解C++?指針與二維數(shù)組名

    詳解C++?指針與二維數(shù)組名

    和一維數(shù)組類(lèi)似,C++?將二維數(shù)組名解釋為其第一個(gè)元素的地址,而二維數(shù)組的第一個(gè)元素為一維數(shù)組,下面詳細(xì)總結(jié)下二維數(shù)組名的性質(zhì),需要的朋友可以參考下
    2022-09-09
  • c++中為什么不提倡使用vector示例詳解

    c++中為什么不提倡使用vector示例詳解

    這篇文章主要給大家介紹了關(guān)于c++中為什么不提倡使用vector的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈球游戲

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈球游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • c++中虛函數(shù)的實(shí)現(xiàn)詳解

    c++中虛函數(shù)的實(shí)現(xiàn)詳解

    眾所周知探索c++對(duì)象內(nèi)部的實(shí)現(xiàn)是一件非常有趣的事情,虛函數(shù)在c++中的實(shí)現(xiàn)機(jī)制就是用虛表和虛指針,但是具體是怎樣的呢?下面這篇文章就來(lái)給大家實(shí)際檢驗(yàn)一下 Visual Studio 2013 編譯器在無(wú)優(yōu)化條件下,虛函數(shù)的實(shí)現(xiàn)。有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-12-12
  • C++類(lèi)模板以及保存數(shù)據(jù)到文件方式

    C++類(lèi)模板以及保存數(shù)據(jù)到文件方式

    這篇文章主要介紹了C++類(lèi)模板以及保存數(shù)據(jù)到文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈跳小球

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈跳小球

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈跳小球,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語(yǔ)言初識(shí)動(dòng)態(tài)內(nèi)存管理malloc calloc realloc free函數(shù)

    C語(yǔ)言初識(shí)動(dòng)態(tài)內(nèi)存管理malloc calloc realloc free函數(shù)

    動(dòng)態(tài)內(nèi)存是相對(duì)靜態(tài)內(nèi)存而言的。所謂動(dòng)態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動(dòng)態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存
    2022-03-03
  • C++友元函數(shù)和友元類(lèi)的使用與區(qū)別

    C++友元函數(shù)和友元類(lèi)的使用與區(qū)別

    本文主要介紹了C++友元函數(shù)和友元類(lèi)的使用與區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C語(yǔ)言動(dòng)態(tài)內(nèi)存分配和內(nèi)存操作函數(shù)使用詳解

    C語(yǔ)言動(dòng)態(tài)內(nèi)存分配和內(nèi)存操作函數(shù)使用詳解

    但是在實(shí)際的編程中,往往會(huì)發(fā)生這種情況,即所需的內(nèi)存空間取決于實(shí)際輸入的數(shù)據(jù),而無(wú)法預(yù)先確定 。為了解決上述問(wèn)題,C語(yǔ)言提供了一些內(nèi)存管理函數(shù),這些內(nèi)存管理函數(shù)可以按需要?jiǎng)討B(tài)的分配內(nèi)存空間,也可把不再使用的空間回收再次利用
    2022-12-12
  • 基于C++編寫(xiě)一個(gè)密碼系統(tǒng)

    基于C++編寫(xiě)一個(gè)密碼系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何基于C++編寫(xiě)一個(gè)簡(jiǎn)單的密碼系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11

最新評(píng)論