创建一个队列 对整型数据进行存放 设定存放数据的个数 并进行取出数据 求得取出数据后队列里还剩的数据

 1 #include <stdio.h>
 2 #define Max 100
 3
 4 void SetNull(front, rear)
 5 int *front, *rear;
 6 {
 7     *front = 0;
 8     *rear = 0;
 9 }
10
11 int Empty(front, rear)
12 int *front, *rear;
13 {
14     if (*front == *rear)
15         return(1);
16     else
17         return(0);
18 }
19
20 int EnQueue(q, x, front, rear)
21 int q[];
22 int x;
23 int *front, *rear;
24 {
25     *rear = (*rear + 1) % Max;
26     if (*front == *rear)
27
28     {
29         printf("队列发生上溢\n");
30         return(-1);
31     }
32     else
33     {
34         q[*rear] = x;
35         return(0);
36     }
37 }
38
39 int DelQueue(q, y, front, rear)
40 int q[];
41 int *y;
42 int *front, *rear;
43 {
44     *front = (*front + 1) % Max;
45     if (*front == *rear)
46     {
47         printf("队列发生下溢\n");
48         return(-1);
49     }
50     else
51     {
52         *y = q[*front];
53         return(0);
54     }
55 }
56
57 int main()
58 {
59     int q[Max];
60     int f = 0, r = 0;    /*f和r分别对应队列的头和尾在整个队列存储区域的位置*/
61     int i, x, m, n;
62     int a;
63     SetNull(&f, &r);            /*清空队列*/
64     printf("要输入队列的字符个数:\n");
65     scanf("%d", &m);
66     printf("输入队列的整型数据:\n");
67     for (i = 0; i<m; i++)
68     {
69         i = i;
70         scanf("%d", &x);
71         a = EnQueue(q, x, &f, &r);
72         if (a == -1)
73             break;
74     }
75     printf("要提出队列的字符个数:");
76     scanf("%d", &n);
77     printf("输出从队列中提取的数据:\n");
78     for (i = 0; i<n; i++)
79     {
80         if (DelQueue(q, &x, &f, &r) == -1)
81             break;
82         printf("%d\n", x);
83     }
84     if (Empty(&f, &r) == 1)
85         printf("队列为空");
86     else
87         printf("队列中还有%d个数据", (m - n));
88     getchar();
89     return 0;
90 }

原文地址:https://www.cnblogs.com/liugangjiayou/p/11651362.html

时间: 2024-08-30 10:52:29

创建一个队列 对整型数据进行存放 设定存放数据的个数 并进行取出数据 求得取出数据后队列里还剩的数据的相关文章

不创建第三方变量对整型数组逆置

以整型数组为例实现逆置 将一个整型数组逆序,如:数组a[5]={1,2,3,4,5},逆序之后数组a的内容变成{5,4,3,2,1}. void SwapNum(int& a, int& b) {  a = a^b;  b = a^b;  a = a^b; } void SwapArray(int *str,int size) {  int i = 0;  for (i = 0; i < size / 2; i++)  {   SwapNum(str[i], str[size - i

华为机试—整型数组中出现次数最多的元素

取出整型数组中出现次数最多的元素,并按照升序排列返回. 要求实现方法: public static int[] calcTimes(int[] num, int len); [输入] num:整型数组: len :输入的整数个数 [返回] 按照升序排列返回整型数组中出现次数最多的元素 [注意]只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 输入:num = {1,1,3,4,4,4,9,9,9,10} len = 10 返回:{4,9} #include <iostream>

【实战】在BingoCloudOS中创建一个blog环境

本文通过实战方式了解下在品高云(BingoCloudOS)中如何快速部署一个wordpress的blog站点(包括web和数据库) 涉及服务:弹性服务器(EC2) 涉及版本:所有版本 涉及功能点:镜像.密钥.远程连接.安全组.存储卷.wordpress下载与安装 1.创建实例前的准备 1.1.准备镜像 系统镜像由云平台管理员在进行云平台初始化时准备,普通用户直接使用即可,用户对于需要的镜像可在[基础服务→计算→镜像]的搜索内容框中对镜像进行搜索,若云平台中暂无您需要的镜像时可向管理员申请,或基于

Android官方入门文档[1]创建一个Android项目

Android官方入门文档[1]创建一个Android项目 创建一个Android项目 这节课教你1.创建与Android Studio中的一个项目2.创建使用命令行工具项目 你也应该阅读?管理项目 Creating an Android Project This lesson teaches you to1.Create a Project with Android Studio2.Create a Project with Command Line Tools You should also

SAP Cloud Platform integration上创建一个最简单的iFlow

登录SAP CPI控制台,点击这个铅笔图标进入工作区域: 选择一个已经存在的content package: 在这个content package里创建一个新的iFlow: 默认生成的iFlow模型如下.删除Sender,因为在这个最简单的iFlow里,我们采用timer方式触发: 删除Sender后如下图所示: 选择一个Timer作为iFlow触发器: 将tinmer拖拽到integration process区域,选择Scheduler属性,设置成Run Once-运行一次. 再拖拽一个Co

访问一个绝对地址把一个整型数强制转换 (typecast)为一个指针是合法的

在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66.编译器是一个纯粹的ANSI编译器.写代码去完成这一任务. 解析:这一问题测试你是否知道为了访问一个绝对地址把一个整型数强制转换(typecast)为一个指针是合法的.这一问题的实现方式随着个人风格不同而不同.典型的代码如下: 一个较晦涩的方法是: 建议你在面试时使用第一种方案.答案:

设计一个函数,找出整型数组元素的最大值

/* 设计一个函数,找出整型数组元素的最大值 */ #include <stdio.h> int maxOfArray(int array[], int length) { // 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节 //int size = sizeof(array); //printf("array=%d\n", size); //sizeof(array); // 1.定义一个变量存储最大值(默认就是首元素) i

一个整型数组里除了两个不同数字之外,其它的数字都出现了两次。请写程序找出这两个只出现一次的数字。

曾经做过一道水题找出除了一个数字之外,其他数字都有2个.直接异或 最后结果就是那个数. 现在变成存在2个不一样的数字,假设成x,y,那么可以O(n)求出x^y,因为x,y不同,所以异或的结果不为0,看成2进制数,那么找到第一位为1 的位置,将这个位置设置为划分点,数组里所有这个位置为1 的异或一次,所有为0的再异或一次,最终求出的两个即为两个独特的数字. #include <stdio.h> #include <string.h> #include <algorithm>

求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。方法是先将整型数字转换到数组中,再判断。函数为 int same(int num)其中num是输入的整型数字

import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Test { public static void main(String[] args) { /** * 2.求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123, * 相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0. * 方法是先将整型数字转换到数组中,再判断.