顺序队列

2021-06-13  本文已影响0人  TPEngineer

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;

上一篇 下一篇

猜你喜欢

热点阅读