队列学习

顺序存储循环队列

#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "iostream"
#define OK 1;
#define ERROR 0;
#define MAXSIZE 5

typedef int QElemType;

//链表的顺序存储结构
typedef struct {
    QElemType data[MAXSIZE];
    int front;
    int rear;
}SqQueue;

//初始化一个队列
QElemType InitQueue(SqQueue* Q) {
    Q->front = 0;
    Q->rear = 0;
    return OK;
}

//返回队列Q的元素个数,也就是队列长度
QElemType QueueLength(SqQueue* Q) {
    return ((Q->rear - Q->front )% MAXSIZE);
}

//循环队列入队操作
QElemType EnQueue(SqQueue* Q, QElemType e) {
    //判断队列满
    if ((Q->rear + 1) % MAXSIZE == Q->front)return ERROR;
    //赋值e到队尾
    Q->data[Q->rear] = e;
    //rear指针向后移一位置
    //若到最后则转到数组头部
    Q->rear = (Q->rear + 1) % MAXSIZE;
    return OK;
}

//循环队列出队操作
QElemType DeQueue(SqQueue* Q, QElemType* e) {
    //判断队列空
    if (Q->front == Q->rear) {
        return ERROR;
    }
    //赋值
    *e = Q->data[Q->front];
    //front指针向后移一位置
    //若到最后则返回数组头部
    Q->front = (Q->front + 1) % MAXSIZE;
    return OK;
}

int main()
{
    return 0;
}

C++ queue函数用法
要使用queue,应先添加头文件#include,并在头文件下面加上using namespace std;

1.queue的定义:
typename可以是任意基本数据类型或容器:

queue<typename>name;

2 queue容器内元素的访问:
由于队列( queue)本身就是一种先进先出的限制性数据结构,因此在STL中只能通过
front()来访问队首元素
back()来访问队尾元素

3.queue常用函数实例解析:
(1)push()
将x压入队列
(2)front()
获得队首元素
(3) back()
获得队尾元素
(4)pop()
令队首元素出队
(5)empty()
检测是否为空,返回true则为空,返回false则非空size()
(6)size()
返回queue内元素的个数

使用front()、back()和pop()函数前,必须用empty()判断队列是否为空,否则可能因为队空而出现错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值