首页 > 其他分享 >队列的顺序存储

队列的顺序存储

时间:2023-02-08 14:26:25浏览次数:63  
标签:return cout 队列 SqQueue bool front 顺序存储 rear

 

 

#include<iostream>
using namespace std;
#define MAXSize 10
typedef int Elemtype;

typedef struct
{
Elemtype data[MAXSize];
int front, rear;
}SqQueue;
bool IsEmpty(SqQueue& Q);
void initSqQueue(SqQueue& Q);
bool CreatQueue(SqQueue& Q);
void printSqQueue(SqQueue& Q);
bool EnQueue(SqQueue& Q);
bool OutSqQueue(SqQueue& Q);
int main()
{
SqQueue Q;
initSqQueue(Q);
CreatQueue(Q);
printSqQueue(Q);
EnQueue(Q);
printSqQueue(Q);
OutSqQueue(Q);
printSqQueue(Q);
system("pause");
return 0;
}
//初始化队列
void initSqQueue(SqQueue& Q)
{
Q.front = Q.rear = 0;
}
//判断队空
bool IsEmpty(SqQueue& Q)
{
if (Q.front == Q.rear)
return true;
else
return false;
}
//创建队列
bool CreatQueue(SqQueue& Q)
{
cout << "输入入队元素个数:" << endl;
int i;
cin >> i;
cout << "依次输入入队元素:" << endl;
Elemtype e;
if (i > MAXSize - 1)
{
cout << "队列以满:" << endl;
return false;
}
while (i!=0)
{
cin >> e;
Q.data[Q.rear] = e;
Q.rear = Q.rear + 1;
i--;
}
return true;
}
//显示队列元素
void printSqQueue(SqQueue& Q)
{
int i = Q.front;
cout << "队列元素为:" << endl;
while (i!=Q.rear)
{
cout << Q.data[i] << " ";
i++;
}
cout << endl;
}

//入队
bool EnQueue(SqQueue& Q)
{
if (Q.front ==(Q.rear + 1) % MAXSize)
{
cout << "队列已满 " << endl;
return false;
}
cout << "请输入入队元素 " << endl;
Elemtype e;
cin >> e;
Q.data[Q.rear] = e;
Q.rear = (Q.rear + 1) % MAXSize;
return true;

}
//出队
bool OutSqQueue(SqQueue& Q)
{
if (Q.front == Q.rear)
{
cout << "队列已满:" << endl;
return false;
}
Elemtype e = Q.data[Q.front];
Q.front = (Q.front + 1) % MAXSize;
cout << "元素出队成功!" << endl;
return true;
}

 

 

标签:return,cout,队列,SqQueue,bool,front,顺序存储,rear
From: https://www.cnblogs.com/promote-L/p/17101577.html

相关文章

  • 【tyvj1305】最大子序和(单调队列)
    problem给你一个长为n的序列求一个长不超过m的连续子段,使子段和最大solution如果n<=10^3,我们很容易写出枚举(s是前缀和,区间[l,r]的和就是s[r]-s[l-1]。枚举l,r即可。for(int......
  • 【POJ2259】Team Queue(队列,模拟)
    problem有n个小组,进行排队。当一个人来到队伍时,若队伍中有自己小组成员时,他就直接站到其后面如果没有,则站到队伍最后面,形成自己小组的第一个入队元素。出队列时,给出出队指令......
  • 阻塞式并发队列
    --BlockingQueue:阻塞式队列--可以实现生产者消费者模式 --LinkedBQ:链表实现    --ArrayBQ:数组实现,有限队列    --Delay......
  • OpenHarmony开发15 —— 消息队列
    OpenHarmony开发15——消息队列说点别的,这几天没更新真的是被这个消息队列折磨完了,谁知道鬼鸿蒙它不进行任何提示!为什么stackoverflow会不提示啊!!!太折磨了太折磨了......
  • STL-stack栈容器&queue队列容器
    <aname="LfCAT"></a>stack栈容器基本概念stack是一种先进后出(​​FristInLastOut,FILO​​)的数据结构,它只有一个出口<br/><br/>栈中只有顶端的元素才可以被外界访问......
  • 重学单调队列优化dp
    再谈单调队列优化dp。题目:CF1077F1&2PictureswithKittens(Easy&hardversion)从n个数中选出m个数,连续k个数至少选出一个,最大化选出数和。easyversion普通dp,hard则......
  • UVA540 Team Queue 队列入门经典
    题意翻译有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会被排到长队的队尾。输入......
  • 消息队列数据丢失及可靠性
    用MQ有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。如果说你这个......
  • 消息队列的延时以及过期失效,消息队列消息积压及占满问题解决思路
    大量消息在mq里积压了几个小时了还没解决几千万条数据在MQ里积压了七八个小时,从下午4点多,积压到了晚上11点多。这个是我们真实遇到过的一个场景,确实是线上故障了......
  • 消息队列部署选择
    部署是单机还是集群呢?你们高可用是怎么保证的呢?如果有人问到你MQ的知识,高可用是必问的。上一讲提到,MQ会导致系统可用性降低。所以只要你用了MQ,接下来问的一些要点......