队列入队和出队程序演示

#include <stdio.h>
#include <string.h>
#include <malloc.h>typedef struct Queue {int * pBase;int  front;int  rear;} QUEUE;void init(QUEUE *);
bool en_queue(QUEUE *pQ, int val);  //入队
void traverse_queue(QUEUE * pQ);
bool full_queue(QUEUE * pQ);bool out_queue(QUEUE *pQ, int *pVal);  //出队     *pVal用来保存出队的元素
bool empty_queue(QUEUE *pQ);            //判空int main(void) {QUEUE Q;int val;  //保存出队元素init(&Q);en_queue(&Q, 1);en_queue(&Q, 2);en_queue(&Q, 3);en_queue(&Q, 4);en_queue(&Q, 5);en_queue(&Q, 6);en_queue(&Q, 7);en_queue(&Q, 8);traverse_queue(&Q);  //遍历输出if (out_queue(&Q, &val)) {		  //出队printf("出队成功 出队元素 %d\n",val);//成功}else {printf("出队失败 出队元素 %d\n", val);//失败}traverse_queue(&Q);  //遍历输出while (true){}return 0;
}void init(QUEUE *pQ) {pQ->pBase = (int *)malloc(sizeof(int) * 6);pQ->front = 0;pQ->rear = 0;
}//入队
bool en_queue(QUEUE *pQ, int val) {if (full_queue(pQ)) {return false;}else {pQ->pBase[pQ->rear] = val;pQ->rear=(pQ->rear + 1) % 6;return true;}}//判断队列是不是满了
bool full_queue(QUEUE * pQ) {if ( (pQ->rear + 1)%6==pQ->front) {return true;}else {return false;}}//遍历输出
void traverse_queue(QUEUE *pQ) {int i=pQ->front;while (i != pQ->rear) {printf("%d  ", pQ->pBase[i]);i = (i + 1) % 6;}printf("\n");return;
}//出队
bool out_queue(QUEUE *pQ, int *pVal) {if (empty_queue(pQ)) {return false;	}else {*pVal = pQ->pBase[pQ->front];   //队列从头部出队,保存头部出队的元素pQ->front = (pQ->front + 1) % 6;}
}//队列判空
bool empty_queue(QUEUE *pQ) {if (pQ->front == pQ->rear) {return true;}else {return false;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图的遍历DFS与BFS(邻接表)

#include "stdafx.h" #include <iostream> #include <fstream> #include <queue> #include <Windows.h>using namespace std;#define INFINITY INT_MAX #define MAX_VERTEX_NUM 20 //顶点最多个数 #define LENGTH 5 //顶点字符长…

递归求n的阶层算法实现

专题:递归 定义:一个函数自己直接或间接调用自己 递归满足三个条件 1、递归必须得有-一个明确的中止条件 2、该函数所处理的数据规模必须在递减 3、这个转化必须是可解的 #include <stdio.h> #include <string.h> #include <malloc.h> #include <stdlib…

IOS各种文件描述

http://wg2009perfect.blog.163.com/blog/static/12799766320120513954711/转载于:https://www.cnblogs.com/qiqibo/archive/2012/08/15/2639508.html

递归求1到100的和算法演示

循环和递归 递归:易于理解、速度慢、存储空间大 循环&#xff1a;不易理解、速度快、存储空间小 #include <stdio.h> #include <string.h> #include <malloc.h> #include <stdlib.h>long sum_sum(int n) {if (1 n) {return 1;}else {int sum n sum…

Terasoluna(中文)

1、靶期业务及框架基本处理流程 整体来看&#xff0c;靶期业务业务处理流程可分为三个环节&#xff1a; 前处理(Job前处理)->主处理(主要业务)->后处理(Job后处理)。 其中&#xff0c;前处理可能是取得靶期日付或者一些执行主处理前的准备工作&#xff0c;后处理主要是靶…

递归实现汉诺塔程序

[将汉诺塔]这不是线性递归&#xff0c;这是个非线性递归! n1 1 n2 3 n3 7 ................. n64 2的64次方减1 [这是个天文数字&#xff0c;就算世界上最快的计算机也解决不了 汉诺塔的复杂度是2的n次方减一 问题很复杂&#xff0c;恒真正解决问题的编码就…

个人博客发展前景

我最近着手写一个博客 但是发现素材很少 而且各种类型博客已经来了 特别不想有重复的内容 百般纠结呀 求各位的意见 来自 个人博客转载于:https://www.cnblogs.com/xiezewen/archive/2012/08/16/2641111.html

转 ofbiz的webservice接口提供(1)-WSDL的生成

ofbiz的service&#xff1a;这个是ofbiz赖以骄傲的设计方式。她可以将所有内部实体对象的CRUD都使用service的方式提供&#xff0c;不同系统之间可以通过互相调用service来完成业务操作。这种松耦合的方式是很多框架梦寐以求的效果。 在ofbiz4的文档中提到&#xff0c;如果想将…

mysql常见函数

###进阶4&#xff1a;常见函数一、单行函数1、字符函数concat拼接substr截取子串upper转换成大写lower转换成小写trim去前后指定的空格和字符ltrim去左边空格rtrim去右边空格replace替换lpad左填充rpad右填充instr返回子串第一次出现的索引length 获取字节个数2、数学函数round…

数组循环移位

设计一个算法&#xff0c;把一个含有N个元素的数组循环右移K位&#xff0c;要求时间复杂度为O&#xff08;N&#xff09;&#xff0c;且只允许使用两个附加变量。 不合题意的解法如下&#xff1a; 我们先试验简单的办法&#xff0c;可以每次将数组中的元素右移一位&#xff0c;…

数据结构之树概述

非线性结构&#xff1a; 树的定义&#xff1a;树&#xff08;Tree&#xff09;是n&#xff08;n>0&#xff09;个节点的有限集T。它或是空集&#xff08;空树即n0&#xff09;&#xff0c;或者是非空集。 对于任意一颗非空树&#xff1a; &#xff08;1&#xff09;有且仅…

IIS7中WCF配置问题集合

1 IIS注册WCF 以管理员身份运行命令行&#xff1a; "C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r -y 2 问题&#xff1a;无法找到 ServiceHost 指令中作为服务属性值提供的类型 将网站转换为应用程序 3 无法…

解决scanf_s函数报错:没有为格式字符串传递足够的参数

报错&#xff1a;scanf_s函数报错:没有为格式字符串传递足够的参数 int main() {char s1[20] "i m name";char *p1, *p2;char s3[10] {0};p1 s1;p2 s3;printf("请输入你的名字: \n");scanf_s("%s",&s3);printf("%s\n", s3);f…

Commons codec jar包详解

Commons项目中用来处理常用的编码方法的工具类包&#xff0c;例如DES、SHA1、MD5、Base64, 及 hex, metaphone, soundex 等编码演算。 JavaDoc:http://www.osctools.net/apidocs/apidoc?apicommons-codec 官网下载地址&#xff1a;http://commons.apache.org/codec/ 使用&…

数据结构:在一个单链表中,若删除p指向节点的后继节点,则执行的操作为:( )

在一个单链表中,若删除p指向节点的后继节点,则执行的操作为&#xff1a;&#xff08; &#xff09; A.qp->next; p->nextp->next->next; free(q) B.pp->next; qp->next;pq->next; free(q) C.qp->next->next; pp->next; free(q) D.pp->next-&…

使用ActionScript实现滤镜效果

使用ActionScript实现滤镜效果2009年02月24日 11:17用as做滤镜效果&#xff0c;每种滤镜效果对应一个类别&#xff0c;这些类别将来会在Macromedia\Flash 8\语系\First Run\Classes\FP8\flash\filters 这个资料夹中. 一、渐变斜角——GradientBevelFilter类别 二、投影——Drop…

已知先序和中序求后序

先序: ABCDEFGH 中序: BDCEAFHG 求后序:DECBHGFA 具体看B站郝斌视频&#xff1a;https://www.bilibili.com/video/BV11s41167h6?p71

微软的Surface平板电脑RT版,RT是什么缩写?|转|

http://www.guokr.com/question/240887/ 1# 其实rt是win8家族的新成员&#xff0c;专为arm系列处理器设计的windows 8版本&#xff0c;不兼容win32程序 2# zzllrr 2012-06-21 09:28:19 找到权威解答了&#xff1a;“RT”代表“Runtime”的意思。既Windows Runtime Library&…

对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是 ()

对广义表L((a&#xff0c;b)&#xff0c;(c&#xff0c;d)&#xff0c;(e&#xff0c;f))执行操作tail(tail(L))的结果是 ( ) 。 A&#xff0e;(e&#xff0c;f) B&#xff0e;((e&#xff0c;f)) C&#xff0e;(f) D&#xff0e;() 本题考查广义表的概念和特征。 广义表是线性…

USACO sec2.1 Ordered Fractions

首先两重 for 循环对可能取的值约分&#xff0c;分子分母分别存放&#xff0c;根据比较分数大小的方法排序&#xff0c;然后按顺序输出&#xff08;相同的只输出一个&#xff09;&#xff1b; /* PROG : frac1 LANG : C */ # include <stdio.h> # include <stdlib.h&g…