栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【数据结构复习自用】循环队列的基本操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据结构复习自用】循环队列的基本操作

队列常见的基本操作
InitQueue(&Q)  //初始化队列,构造一个空队列Q
QueueEmpty(Q)  //判队列空,若空返回true,不空返回false
EnQueue(&Q,x)  //入队,若Q未满,将x加入,使之成为新的队尾
DeQueue(&Q,&x)  //出队,若Q非空,删除队头元素,并用x返回
GetHead(Q,&x)  //读队头元素,若Q非空,将队头元素赋值给x
//栈和队列是受限制的线性表,所以不是任何对线性表的操作都适用于栈和队列,
//比如,不可以随便读取栈和队列中间的某个元素
队列的顺序存储类型和描述为
#define MaxSize 50
typedef struct{
ElemType data[MaxSize];  //用静态数组存放队列元素,系统自动分配连续存储空间
int front ,rear;
}SeQueue;
  1. 初始化
void InitQueue(SqQueue &Q){
    Q.rear = Q.front = 0;
}
  1. 判队空
bool QueueEmpty(SqQueue Q){
    if(Q.rear == Q.front)  returun true;
    else return false;
} 
  1. 入队
bool EnQueue(SqQueue &Q,ElemType x){
    if((Q.rear+1)%MaxSize == Q.front)  return false;
    Q.data[Q.rear] = x;
    Q.rear = (Q.rear+1)%MaxSize;
    return true;
}
  1. 出队
bool DeQueue(SqQueue &Q,ElemType &x){
    if(Q.rear == Q.front)  return false;
    x = Q.data[Q.front];
    Q.front = (Q.front+1)%MaxSize;
    return true;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879870.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号