47 _ 循环队列程序演示.swf

通过上面的分析我们已经对循环队列很了解了,现在我们来学习下循环队列的实现形式

1、代码使用数组现实循环队列

复制代码
#include<stdio.h>
#include<malloc.h>
#include <stdio.h>  
#include <stdlib.h> 
typedef struct Queue{
    int * data;//存储的数据,指向一个数组 
    int font ;//队列数据删除
    int rear;//队列数据的添加
     
}QUEUE ,*PQUEUE;


/*初始化队列 6表示数组的长度*/
void initQueue( PQUEUE pQueue){
    /*
    队列有三个元素构成:
    1、一个数组
    2、font标志
    3、rear标志 
    */
    //首先让队列 执行一个地址
     pQueue->data = (int*)malloc(sizeof(int)*6);//该数组存储6个int类型的数据
     pQueue->font = 0;
     pQueue->rear = 0; 
    
}

/*
判断队列是否已经存储满了 
*/
bool full_quequ( PQUEUE pQueue){
    if((pQueue->rear+1)%6 == pQueue->font){
        return true;
    }else{
        return false;
    }
}

/*对队列进行遍历*/
void   traverse_queue(PQUEUE pQueue){
    int index = pQueue->font;
    while(index != pQueue->rear){
        printf("%d\n",pQueue->data[index]);
        index = (index+1)%6;
    }
} 

/*向队列中存储数据*/
bool en_queue(PQUEUE pQueue ,int val){
 if(full_quequ(pQueue)){
     return false;
 }else{
     //将输出放入数组对应的当前rear的位置
     pQueue->data[pQueue->rear] = val;
    //rear向上移动
    pQueue->rear = (pQueue->rear+1)%6;//数组的长度是6
     return true; 
      
 }
    
}

/*判断队列是否为空*/
bool isEmptyQueue(PQUEUE pQueue){
    
    if(pQueue->font == pQueue->rear ){
        return true;
    }else{
        return false;
    }
    
}

/*删除队列中的元素,将删除的元素保存到pVal的值中*/
bool delete_quequ(PQUEUE pQueue ,int *pVal){
    if(isEmptyQueue(pQueue)){
        return false;
    }else{
        //删除元素
        *pVal =  pQueue->data[pQueue->font];
        //font指针上移动
        pQueue->font = (pQueue->font +1) % 6;
        return true; 
    }
} 
int main(){
    QUEUE s ;
    initQueue(&s);
    //数组的长度是6,一个空间存储rear,有效的空间只有5个,只能存储5个有效的数据 
    en_queue(&s,1);
    en_queue(&s,2);
    en_queue(&s,3);
    en_queue(&s,1);
    en_queue(&s,2);

    traverse_queue(&s);
    return 0;
}
复制代码

 

posted on   luzhouxiaoshuai  阅读(208)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示