holyya.com
2025-09-04 15:36:57 Thursday
登录
文章检索 我的文章 写文章
C++队列的定义及实现方法
2023-07-10 22:11:30 深夜i     --     --
C++队列 定义 实现方法 队头 队尾

C++队列是一种先进先出(FIFO)的数据结构,它是一种抽象数据类型(ADT),它的主要目的是将元素存储到容器中,并提供一种有效的方式来访问容器中的元素。

队列的定义:

在C++中,队列是一个容器,它包含了多个元素。元素按照添加到队列中的顺序进行排序,而且要求最先添加的元素最先被访问。这种访问方式称为FIFO。

实现方法:

在C++中,队列可以使用数组或链表来实现。在数组实现中,队列元素存储在一个线性结构中,可以使用指针或者索引来跟踪队列中的元素。在链表实现中,队列元素存储在链表的节点中,每个节点包含了当前元素和指向下一个节点的指针。

以下是使用数组实现的C++队列:


#include<iostream>

#define MAX_SIZE 100

using namespace std;

class Queue {

  private:

    int arr[MAX_SIZE];

    int front;

    int rear;

  public:

    Queue()

      front = -1;

      rear = -1;

    

    bool isEmpty() {

      return (front == -1 && rear == -1);

    }

    bool isFull() {

      return (rear == MAX_SIZE -1);

    }

    void enqueue(int val) {

      if(isFull())

        cout << "队列已满!" << endl;

        return;

      

      if(isEmpty())

        front = rear = 0;

       else {

        rear++;

      }

      arr[rear] = val;

    }

    void dequeue() {

      if(isEmpty())

        cout << "队列为空!" << endl;

        return;

       else if(front == rear)

        front = rear = -1;

       else {

        front++;

      }

    }

    int peek() {  

      if(isEmpty())

        cout << "队列为空!" << endl;

        return 0;

       else {

        return arr[front];

      }

    }

};

int main() {

  Queue q;

  q.enqueue(5);

  q.enqueue(3);

  q.enqueue(7);

  q.dequeue();

  q.dequeue();

  cout << "队列头元素:" << q.peek() << endl;

  return 0;

}

以上代码实现了一个基本的C++队列类,它使用了数组来存储元素,并提供了加入队列、弹出队列、查询队列头部元素的方法。虽然以上代码是使用数组来实现队列的,但链表实现方式和思路是一样的,只需要在节点中加入指针即可。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复