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

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个int类型的数据
pQueue->font = ;
pQueue->rear = ; } /*
判断队列是否已经存储满了
*/
bool full_quequ( PQUEUE pQueue){
if((pQueue->rear+)% == 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+)%;
}
} /*向队列中存储数据*/
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+)%;//数组的长度是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 +) % ;
return true;
}
}
int main(){
QUEUE s ;
initQueue(&s);
//数组的长度是6,一个空间存储rear,有效的空间只有5个,只能存储5个有效的数据
en_queue(&s,);
en_queue(&s,);
en_queue(&s,);
en_queue(&s,);
en_queue(&s,); traverse_queue(&s);
return ;
}

47 _ 循环队列程序演示.swf的更多相关文章

  1. 39 _ 队列5 _ 循环队列需要几个参数来确定 及其含义的讲解.swf

    上面讲解都是循环队列,如果是链表实现的话就很简单,队列只有循环队列才比较复杂 此时队列中只存储一个有效元素3,当在删除一个元素的时候,队列为空,pFont向上移动,pFont等于pRear,但是此时p ...

  2. 33_栈程序演示.swf

    pBottom执行栈底有效元素的前一个节点,该节点没有存储有效数据,这样设计是便于栈的管理,向链表一样pHead指向链表的第一个节点,该节点是不存储有效数据的 pTop执行栈顶最新的节点 如果pTop ...

  3. C_数据结构_循环队列

    # include <stdio.h> # include <malloc.h> typedef struct Queue { int * pBase; int front; ...

  4. Java练习小题_猴子吃桃问题分别用for循环和while循环实现程序。

    要求说明: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时, ...

  5. [py]约瑟夫问题-循环队列

    约瑟夫问题(历史战争问题) 直观理解 老外视频讲解 模拟器演示 约瑟夫问题 数学姥公众号 讲的最清楚 背景及,推倒过程讲解得很清晰,旨在提高人们对数据的兴趣 简单说下: 几个人围成一圈(循环队列), ...

  6. C Primer Plus_第6章_循环_编程练习

    1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...

  7. C ~ 链式队列与循环队列

          此处的链式与循环队列可以应用于BFS和树的层序遍历.下面是对其结构和基本操作的程序描述. 1.循环队列 解决循环队列的队空和队满的方法: [1].增加一个参数count,用来记录数组中当前 ...

  8. 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列

    一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...

  9. javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例

    1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...

随机推荐

  1. 几种常见的app推广形式

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  2. 创建HttpFilter与理解多个Filter代码的执行顺序

    1.自定义的HttpFilter,实现Filter接口 HttpFilter package com.aff.filter; import java.io.IOException; import ja ...

  3. 接口(interface)的使用

    类实现接口就具有接口的功能 实现可以多实现,实现多个接口 package cm.aff.abst; /* 接口(interface)是与类并行的一个概念 1. 接口可以看做是一个特殊的抽象类,是常量与 ...

  4. 【图机器学习】cs224w Lecture 13 & 14 - 影响力最大化 & 爆发检测

    目录 Influence Maximization Propagation Models Linear Threshold Model Independent Cascade Model Greedy ...

  5. Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,因此这篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非 ...

  6. Chisel3 - Tutorial - Adder4

    https://mp.weixin.qq.com/s/X5EStKor2DU0-vS_wIO-fg   四位加法器.通过FullAdder级联实现.   参考链接: https://github.co ...

  7. Java实现 LeetCode 556 下一个更大元素 III(数组的翻转)

    556. 下一个更大元素 III 给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n.如果不存在这样的32位整数,则返回-1. 示例 1: 输入: 1 ...

  8. Java实现 蓝桥杯VIP 算法提高 铺地毯

    算法提高 铺地毯 时间限制:1.0s 内存限制:256.0MB 问题描述 为了准备一个学生节,组织者在会场的一片矩形区域(可看做是平面直角坐标 系的第一象限)铺上一些矩形地毯.一共有n 张地毯,编号从 ...

  9. Java实现 LeetCode 67 二进制求和

    67. 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1 ...

  10. Java实现奇偶数排序

    1 问题描述 给定一个整数数组,请调整 数组中数的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.要求时间复杂度为O(n). 2 解决方案 2.1 一头一尾指针往中间扫描法 pack ...