首页 > 其他分享 >c语言数据结构-----循环队列

c语言数据结构-----循环队列

时间:2023-05-02 15:44:07浏览次数:29  
标签:队列 int MAXSIZE ----- printf front 数据结构 rear

#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 10

//循环队列 长度为 m -1 时即为满
typedef struct {
int front;
int rear;
int* base;
}SqQueue;

//初始化队列
int InitQueue(SqQueue &q) {
q.base = new int[MAXSIZE];
q.front = q.rear = 0;
return 0;
}
//求队列长度
int QueueLength(SqQueue &q) {
return (q.rear - q.front + MAXSIZE) % MAXSIZE;
}
//入队
int EnQueue(SqQueue& q, int n) {
if ((q.rear + 1) % MAXSIZE == q.front) {
printf("队列已满\n");
return 0;
}
else
{
q.base[q.rear] = n;
q.rear = (q.rear + 1) % MAXSIZE;
}
return 0;
}
//出队
int DeQueue(SqQueue& q, int& e) {
if (q.front ==q.rear)
{
return 0;
}
else {
e = q.base[q.front];
q.front = (q.front + 1) % MAXSIZE;
}
return 0;
}
int main() {
SqQueue q;
InitQueue(q);
//入队
for (int i = 0; i < 8; i++)
{
EnQueue(q, i);
}
//打印初始队列
printf("初始队列;");
int len1 = QueueLength(q);
for (int i = q.front; i < len1; i++)
{
printf("%d\t",q.base[i]);

}
printf("\n");
//出队
printf("出队元素:");
for (int i = 0; i < 8; i++)
{
int e;
DeQueue(q,e);

printf("%d\t",e);
}
printf("\n");

int len2 = QueueLength(q);
if (len2 == 0)
{
printf("队列已空\n");
}
else
{
printf("出队后:");
for (int i = 0; i < len2; i++)
{
printf("%d\t", q.base[(q.front + i) % MAXSIZE]);
}

}
return 0;
}

标签:队列,int,MAXSIZE,-----,printf,front,数据结构,rear
From: https://www.cnblogs.com/afterschooltea/p/17367780.html

相关文章

  • 基础-SQL-DCL-用户管理
    DCL英文全称是DataControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 其中Host代表当前用户访问的主机,如果为localhost,仅代表只能够在当前本机访问,是不可以远程访问的。User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯......
  • 08 ETH-权益证明
    08ETH-权益证明目录08ETH-权益证明比特币能耗随时间变化:TWh=Terawatthours$10^{12}$KWH=kilowatthours$10^3$具体电量的统计数据:一个交易1000多度电。以太坊统计数据:以太坊能耗具体数据:为什么比特币的能耗比以太坊大,实际比比特币低?以太坊出块时间短。......
  • 09 ETH-智能合约
    09ETH-智能合约目录09ETH-智能合约强类型语言solidity中的hash表不支持遍历。所以需要想办法来进行处理。如何调用智能合约?调用合约的方式:第一种:一个交易只能由外部账户发起,合约账户不能主动发起交易。第二种:第三种:转账金额可以不给,但是汽油费是必须给的,......
  • 10 ETH-TheDAO
    《区块链技术与应用》课程链接:https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.337.search-card.all.click10ETH-TheDAO目录10ETH-TheDAO重入攻击比特币——>去中心化货币以太坊——>去中心化合约DAO(DecentralizedAutonomousOrganization):TheDAO就......
  • VBA-选择标题的内容
    简单说明这个是模仿但是不是wod自带的功能:选择标题和内容 这个功能能方便的快速选择这个标题下面的所有内容。要选定是因为我要对这个标题下面的子标题进行排序,但是排序的话,不能有父标题,也就是说,选择的内容中的最高标题要是同级别(有父标题就排序父标题去了,但是父标题又只有一......
  • python轻量级性能工具-Locust
    python轻量级性能工具-Locust Locust基于python的协程机制,打破了线程进程的限制,可以能够在一台测试机上跑高并发性能测试基础1.快慢:衡量系统的处理效率:响应时间2.多少:衡量系统的处理能力:单位时间内能处理多少个事务(tps)性能测试根据测试需求最常见的分为下面三类......
  • 基础-SQL-DQL-分页查询
    分页操作在业务系统开发时,也是非常常见的一个功能,我们在网站中看到的各种各样的分页条,后台都需要借助于数据库的分页操作。SELECT字段列表FROM表名LIMIT起始索引,查询记录数;注意事项:•起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。•分页查询是数据......
  • Theano 中文文档 0.9 - 7.1.1 Python教程
    7.1.1Python教程译者:Python文档协作翻译小组,原文:Pythontutorial。本文以CCBY-NC-SA4.0协议发布,转载请保留作者署名和文章出处。Python文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。在本文档中,我们假设读者了解Python。如果你需要学习......
  • Theano 中文文档 0.9 - 7.2.2 更多示例
    7.2.2更多示例译者:Python文档协作翻译小组,原文:MoreExamples。本文以CCBY-NC-SA4.0协议发布,转载请保留作者署名和文章出处。Python文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。现在开始,通过浏览库的BasicTensorFunctionality这一部......
  • Theano 中文文档 0.9 - 7.1.2 NumPy新手
    7.1.2NumPy新手译者:Python文档协作翻译小组,原文:NumPyrefresher。本文以CCBY-NC-SA4.0协议发布,转载请保留作者署名和文章出处。Python文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。这里有一些NumPy的快速指南:Matlab用户快速指南Numpy用......