美文网首页
顺序队列

顺序队列

作者: TPEngineer | 来源:发表于2021-06-13 12:09 被阅读0次

01 队列的基本概念

队列是只允许在一端插入,另一端删除的线性表。

FIFO先进先出是队列的特性。

01 顺序队列

#define MaxSize 10

typedef struct {

    ElemType data[MaxSize];

    int front,rear;

}SqQueue;

void InitQueue(SqQueue &Q) {

    // 初始时 队头、队尾指针指向0

    Q.rear = Q.front = 0;

}

bool QueueEmpty(SqQueue Q) {

    return Q.rear == Q.front;

}

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; // 队尾指针+1取模

    return true;

}

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;

}

bool GetHead(SqQueue &Q,ElemType &x) {

    if(Q.rear == Q.front)

        return false;

    x = Q.data[Q.front];

    return true;

}

方案二

#define MaxSize 10

typedef struct {

    ElemType data[MaxSize];

    int front,rear;

    int size;

}SqQueue;

相关文章

  • 【数据结构】【C#】008-队列:👬👬顺序队列(循环队列)

    C#数据结构:顺序队列 1、 顺序队列的假溢出现象 队列的一种顺序存储称为顺序队列。与顺序栈类似,在队列的顺序存储...

  • 0x07队列

    a、顺序队列 b、链式队列

  • 队列

    顺序存储结构队列 循环队列 链队列

  • Java数组实现循环队列

    Java数组实现循环队列 上一节(Java实现队列——顺序队列、链式队列)我们使用数组实现了顺序队列,但是在tai...

  • 顺序队列

    队列是一种受限的线性表,它是只在队首进行插入,且只能在队尾进行删除。队列具有先进先出的特性,广泛应用在树的层次遍历...

  • 顺序队列

  • 顺序队列

    01 队列的基本概念 队列是只允许在一端插入,另一端删除的线性表。 FIFO先进先出是队列的特性。 01 顺序队列...

  • 队列_顺序队列 & 链式队列

    队列 (Queue)队头出,队尾入操作集合:(1)QueueInitiate(Q) 初始化队列Q(2)Queu...

  • 数据结构之队列的链式存储结构

    之前写了队列的顺序存储结构,队列的定义及操作见 数据结构之队列的顺序存储结构 队列的链式存储结构与操作实现 队列接...

  • zookeeper 应用场景四、分布式队列

    分布式队列 利用zookeeper顺序节点特性,产生队列,如图,建立队列Queue,生产者创建顺序节点在Queue...

网友评论

      本文标题:顺序队列

      本文链接:https://www.haomeiwen.com/subject/nvpmeltx.html