循环队列练习

news2025/1/4 18:35:27

循环队列练习

相关内容:
1.队列顺序存储的不足
2.循环队列(队列头尾相接的顺序存储结构)

//队列的初始化、入队、出队、取对头、计算队长度
#include<stdio.h>
#define MAXSIZE 10
typedef int Status;
#define OK 1
#define ERROR 0
typedef struct Queue
{
    int data[MAXSIZE];
    int front;//队头指针,指向队头元素
    int rear;//队尾指针,指向队尾元素的下一个位置
}SqQueue;
Status InitQueue(SqQueue *SQ){
    SQ->front=SQ->rear=0;
    return OK;
}
//入队操作限定在队尾进行
Status EnQueue(SqQueue *SQ,int e){
    if ((SQ->rear+1)%MAXSIZE==SQ->front)//判满
        return ERROR;
    SQ->data[SQ->rear]=e;//元素入队
    SQ->rear=(SQ->rear+1)%MAXSIZE;//后移队尾指针,若越界则重回队头
    return OK;
}
//出队操作限定在队头进行
Status DeQueue(SqQueue *SQ,int *e){
    if (SQ->front==SQ->rear)//判空
        return ERROR;
    *e=SQ->data[SQ->front];
    SQ->front=(SQ->front+1)%MAXSIZE;//后移队头指针,若越界则重回队头
    return OK;
}
int GetHead(SqQueue *SQ){
    if (SQ->front==SQ->rear)//判空
        return ERROR;
    return SQ->data[SQ->front];
}
int QueueLength(SqQueue *SQ){
    return (SQ->rear - SQ->front+MAXSIZE)%MAXSIZE;
}
int main(){
    int n,e;
    SqQueue SQ;
    InitQueue(&SQ);
    printf("Init Completed!\n");
    printf("输入入队元素个数:");
    scanf("%d",&n);
    for (size_t i = 0; i < n; i++)
    {
        printf("输入第%d个入队元素:",i+1);
        scanf("%d",&e);
        EnQueue(&SQ,e);
    }
    printf("队头元素:%d\n",GetHead(&SQ));
    printf("当前队列长度:%d\n",QueueLength(&SQ));
    for (size_t i = 0; i < n; i++)
    {
        printf("输入第%d个出队元素:",i+1);
        DeQueue(&SQ,&e);
        printf("%d\n",e);
    }
    return 0;
}

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

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

相关文章

虚幻C+++基础 day2

角色移动与视角控制 Character类与相关API 创建Character子类MainPlayer.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "GameFramework/Character.h" #include &q…

centos7.0+最快速安装docker的方法

先安装yum工具&#xff0c;然后添加阿里云的docker仓库&#xff0c;然后yum安装&#xff0c;然后启动 安装yum-config yum install yum-utils -y yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce do…

一款简单而强大的文档翻译网站

一款文字/文件翻译的网站,支持多个领域的翻译&#xff0c;支持常见的语言翻译(韩/日/法/英/俄/德…),最大百分比的保持原文排版(及个别除外基本100%还原)。 新用户注册就有100页的免费额度&#xff0c;每月系统还会随机赠送翻译额度&#xff0c;说实话这比好多的企业要好的多了…

为什么没有面试机会?是因为你没有掌握这套完整的性能测试流程,

一、准备工作 在什么阶段开展性能测试工作&#xff1f;一般情况下&#xff0c;是在被测系统已完成功能测试、系统趋于稳定的情况下&#xff0c;才会进行性能测试。 1. 组建测试团队 根据被测系统的实际情况&#xff0c;组建一个性能测试团队&#xff0c;团队成员包括&#xff…

CUMT-----Java课后第五章编程作业

文章目录 一、题11.1 问题描述1.2 代码块1.3 运行截图 二、题22.1 问题描述2.2 代码块2.3 运行截图 一、题1 1.1 问题描述 (1)使用继承编写人类、教师、学生类的实体类。(2)编写测试类&#xff0c;实例化教师和学生类对象并显示。 1.2 代码块 public class Human {private S…

镭神智能C16的ROS驱动的安装方法

原文链接 前言 激光雷达赶上了自动驾驶了浪潮&#xff0c;国产激光雷达也越来越多。 最近团队要购买激光雷达&#xff0c;正好拿镭神智能的产品测试一下&#xff0c;安装驱动是首先要做的&#xff0c;因此在这里记录一下。 产品说明&#xff1a;http://www.leishen-lidar.com…

multiple kernel learning(MKL)多核学习

历史上之所以会出现多核学习&#xff08;MKL&#xff09;这个词&#xff0c;是因为在深度学习流行起来以前&#xff0c;kernel是处理非线性的默认方法&#xff0c;那个年代优化一个非线性函数不容易&#xff0c;每加一层复杂性可能就需要多设计一个优化算法&#xff0c;MKL就是…

使用 ChatGPT 提升 LeetCode 刷题效率

文章目录 1 背景2 操作步骤 1 背景 在做 LeetCode 的 SQL 题库时, 想在本地调试, 需要在本地的数据库上创建表以及准备测试数据, 大家都是有经验的开发人员, 简单粗暴的办法就不讲了 可以借助 ChatGPT 的能力, 生产数据库的表以及测试数据的 sql, 提升刷题效率 2 操作步骤 将…

K8S知识点(四)

&#xff08;1&#xff09;环境搭建-集群安装 查看所需镜像 定义下载镜像 循环下载镜像&#xff1a; 下载完成之后&#xff1a;查看一下镜像&#xff0c;名字也已经改成了k8s的名字 集群初始化只在master节点上运行&#xff0c; 出现sucessfully表示成功&#xff0c;提示要运…

5.3 连接和分离线程

方法 pthread_join(thread, status) pthread_detach(thread) pthread_attr_setdetachstate(attr, detachstate) pthread_attr_getdetachstate(attr) 连接 连接&#xff08;joining&#xff09;是一种线程之间完成同步的方法&#xff0c;举例如下。 pthread_join()方法会阻…

Ultra:知识图谱推理的基础模型

一、说明 训练单个通用模型来解决任意数据集始终是 ML 研究人员的梦想&#xff0c;尤其是在基础模型时代。虽然这些梦想已经在图像或自然语言等感知领域实现了&#xff0c;但它们是否可以在推理领域&#xff08;如图形&#xff09;中再现仍然是一个开放的挑战。 图片由作者根据…

PDUR IPDUM

步骤1&#xff1a;思考问题 PDUR&#xff08;PDU Router&#xff09;&#xff1a;PDUR是负责消息的路由和转发。PDUR模块接收来自上层的消息&#xff0c;并根据预定义的路由规则将消息转发给相应的下层模块&#xff0c;或者将从下层接收到的消息转发给相应的上层模块。 PDUR的主…

SOEM源码解析——ecx_init_context(初始化句柄)

0 工具准备 1.SOEM-master-1.4.0源码1 ecx_init_context函数总览 /*** brief 初始化句柄* param context 句柄*/ void ecx_init_context(ecx_contextt *context) {int lp;*(context->slavecount) 0;/* clean ec_slave array *//* 清空从站信息数组 */memset(context->…

python-在系统托盘显示CPU使用率和内存使用率

一、添加轮子 1.添加托盘区图标库 infi.systray from infi.systray import SysTrayIcon 2.添加图像处理库 Pillow from PIL import Image, ImageDraw, ImageFont 3.添加 psutil 来获取CPU、内存信息 import psutil 二、完整代码 from infi.systray import SysTrayIcon …

简单-【1 绪论】

关键字&#xff1a; 数据类型、数据结构定义、递归关键、线性结构、非线性结构、算法特性、算法目标、时间复杂度排序

【异常错误】Multiple top-level packages discovered in a flat-layout: [

今天在配置环境时&#xff0c;在运行代码&#xff1a; pip install -e . 出现了以下错误&#xff1a; 解决方案 在setup.py中显示加入一行 py_modules[]&#xff0c;如&#xff1a; setup(namexxxx,versionx.x,py_modules[], ) 再次运行pip指令安装即可解决。 error: Mul…

由于找不到msvcr110.dll无法继续执行此代码怎么解决?5个解决方法分享

MSVCP110.dll是Microsoft Visual C 2012运行时库的一部分&#xff0c;它包含了许多用于支持C应用程序运行的函数。当您在运行某些程序时&#xff0c;可能会遇到“msvcp110.dll丢失”的错误提示。为了解决这个问题&#xff0c;您可以尝试以下5种方法&#xff1a; 方法1. 重新安装…

思维模型 霍布森选择效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。这是一个设计好的陷阱&#xff0c;也许你认为你有选择&#xff0c;然后冥冥之中你的选择却很少&#xff0c;尽在所谓的“命运”掌握之中。 1 霍布森选择效应的应用 1.1 iphone的营销策略之…

为什么说IT企业知识库是知识共享的驱动力?

在快速发展和不断变化的IT行业中&#xff0c;知识的积累和共享是保持竞争力的关键。一个完善的知识库可以帮助企业有效管理和传承内部知识&#xff0c;提高团队的工作效率和协作能力。随着企业规模的扩大和员工的流动性增加&#xff0c;一个完善的知识库可以确保知识的传承和持…

leetcode 684. 冗余连接

树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1&#xff5e;n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间&#xff0c;且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges &#xff0c;edges[i] …