21xrx.com
2024-12-28 13:34:14 Saturday
登录
文章检索 我的文章 写文章
C++语言实现队列的基本操作
2023-07-08 03:02:08 深夜i     --     --
C++ 队列 基本操作

队列是一种常用的数据结构,它具有先进先出(First In First Out,简称FIFO)的特性。在程序设计中,实现一个队列数据结构是非常常见且重要的需求,因此使用C++语言实现队列的基本操作是一项需要掌握的技能。

C++语言中,可以使用数组或者链表来实现一个队列。在这里,我们先介绍使用数组来实现队列的基本操作。

队列的基本操作包括:入队、出队、队列是否为空、队列是否已满和队列长度。其中,队列的长度等于队列的实际元素个数。

下面是使用数组实现队列的代码示例:


#include <iostream>

using namespace std;

#define MAX_SIZE 100

class Queue {

private:

  int arr[MAX_SIZE];

  int front, rear, len;

public:

  Queue()

    front = rear = len = 0;

  

  void enqueue(int x) {

    if (len >= MAX_SIZE)

      cout << "队列已满

    arr[rear++] = x;

    len++;

    // 如果队列已经到达数组的最大边界,则队列的下一个元素将从数组的开始处插入。

    if (rear == MAX_SIZE)

      rear = 0;

    

  }

  void dequeue() {

    if (len == 0) 出队失败!" << endl;

      return;

    

    front++;

    len--;

    // 如果队列已经到达数组的最大边界,则队列的下一个元素将从数组的开始处插入。

    if (front == MAX_SIZE)

      front = 0;

    

  }

  bool isEmpty()

    return len == 0;

  

  bool isFull()

    return len == MAX_SIZE;

  

  int size()

    return len;

  

};

int main() {

  Queue queue;

  cout << "队列是否为空:" << queue.isEmpty() << endl;

  cout << "入队元素:";

  for (int i = 1; i <= 5; i++) {

    queue.enqueue(i);

    cout << i << " ";

  }

  cout << endl;

  cout << "队列是否已满:" << queue.isFull() << endl;

  cout << "队列长度:" << queue.size() << endl;

  cout << "出队元素:";

  while (!queue.isEmpty()) {

    cout << queue.front << " ";

    queue.dequeue();

  }

  cout << endl;

  cout << "队列是否为空:" << queue.isEmpty() << endl;

  return 0;

}

上述代码中,我们定义了一个名为Queue的类来表示队列,并使用数组来存储队列元素。在类的成员变量中,front用来记录队首元素的索引,rear用来记录队尾元素的索引,同时也是下一个元素插入的位置,len表示队列的长度。

入队操作enqueue(x)实现方法:如果队列已满,则入队失败并给出相应提示,否则将元素x插入到队列的尾部,并更新rear、len值。如果队列已经到达数组的最大边界,则队列的下一个元素将从数组的开始处插入。

出队操作dequeue()实现方法:如果队列为空,则出队失败并给出相应提示,否则将队首元素出队,并更新front、len值。如果队列已经到达数组的最大边界,则队列的下一个元素将从数组的开始处插入。

isEmpty()方法用来判断队列是否为空,isFull()方法用来判断队列是否已满,size()方法用来获取队列的长度。

在主函数中,我们创建了一个名为queue的Queue对象,并对其进行入队、出队等操作,最后输出队列的状态信息。

综上所述,使用C++语言实现队列的基本操作是一项基础而又重要的技能。希望通过这篇文章的介绍,你能够掌握队列的基本操作和如何使用C++语言实现队列。

  
  

评论区

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