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个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的更多相关文章
- 39 _ 队列5 _ 循环队列需要几个参数来确定 及其含义的讲解.swf
上面讲解都是循环队列,如果是链表实现的话就很简单,队列只有循环队列才比较复杂 此时队列中只存储一个有效元素3,当在删除一个元素的时候,队列为空,pFont向上移动,pFont等于pRear,但是此时p ...
- 33_栈程序演示.swf
pBottom执行栈底有效元素的前一个节点,该节点没有存储有效数据,这样设计是便于栈的管理,向链表一样pHead指向链表的第一个节点,该节点是不存储有效数据的 pTop执行栈顶最新的节点 如果pTop ...
- C_数据结构_循环队列
# include <stdio.h> # include <malloc.h> typedef struct Queue { int * pBase; int front; ...
- Java练习小题_猴子吃桃问题分别用for循环和while循环实现程序。
要求说明: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时, ...
- [py]约瑟夫问题-循环队列
约瑟夫问题(历史战争问题) 直观理解 老外视频讲解 模拟器演示 约瑟夫问题 数学姥公众号 讲的最清楚 背景及,推倒过程讲解得很清晰,旨在提高人们对数据的兴趣 简单说下: 几个人围成一圈(循环队列), ...
- 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 ...
- C ~ 链式队列与循环队列
此处的链式与循环队列可以应用于BFS和树的层序遍历.下面是对其结构和基本操作的程序描述. 1.循环队列 解决循环队列的队空和队满的方法: [1].增加一个参数count,用来记录数组中当前 ...
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...
随机推荐
- 设计一个多功能的MyTime类 代码参考
#include <iostream> #include <cstdio> using namespace std; class MyTime { private: int h ...
- jchdl - RTL实例 - And
https://mp.weixin.qq.com/s/86d_sFN0xVqk1xRaRyoAkg 使用rtl语法,实现简单的与门. 参考链接 https://github.com/wjcdx ...
- 腾讯云EMR大数据实时OLAP分析案例解析
OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过QQ音乐与腾 ...
- golang内存逃逸
golang程序变量会携带油一组校验数据,用来证明它的整个生命周期是否在运行时完全可知.如果变量通过了这些校验,它就可以在栈上分配.否则就说它逃逸了,必须在堆上分配 能引起变量逃逸到堆上的典型 ...
- Java实现 LeetCode 699 掉落的方块(线段树?)
699. 掉落的方块 在无限长的数轴(即 x 轴)上,我们根据给定的顺序放置对应的正方形方块. 第 i 个掉落的方块(positions[i] = (left, side_length))是正方形,其 ...
- Java实现 LeetCode 76 最小覆盖子串
76. 最小覆盖子串 给你一个字符串 S.一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串. 示例: 输入: S = "ADOBECODEBANC", T = ...
- Java实现约瑟夫斯问题
1 问题描述 引用自<算法设计与分析基础>第三版: 约瑟夫斯问题,是以弗拉瓦斯.约瑟夫斯(Flavius Josephus)的名字命名的.约瑟夫斯是一个著名的犹太历史学家,参加并记录了公元 ...
- Java实现提取拼音首字母
在很多软件中,输入拼音的首写字母就可以快速定位到某个词条.比如,在铁路售票软件中,输入: "bj"就可以定位到"北京".怎样在自己的软件中实现这个功能呢?问题的 ...
- java实现国庆星期日
** 国庆星期日** 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows日历, ...
- 环境篇:CM+CDH6.3.2环境搭建(全网最全)
环境篇:CM+CDH6.3.2环境搭建(全网最全) 一 环境准备 1.1 三台虚拟机准备 Master( 32g内存 + 100g硬盘 + 4cpu + 每个cpu2核) 2台Slave( 12g内存 ...