根据郝斌老师的视频--循环队列的类的实现

本文详细介绍了一个使用C++实现的队列类,包括队列的创建、判断队列是否为空或满、元素的入队和出队操作,以及遍历队列的功能。通过具体的代码示例展示了队列的基本操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.bilibili.com/video/av6159200?p=38

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

class queue 
{
	int * pBase;
	int front;
	int rear;
	int length;

public:
	queue(int ii) :length(ii) 
	{
		pBase = (int *)malloc(sizeof(int)*length);
		rear = 0;
		front = 0;
	}
	bool is_empty() 
	{
		if (rear == front)
			return true;
		else
			return false;
	}
	bool is_full()
	{
		if ((rear + 1) % length == front)
			return true;
		else
			return false;
	}
	bool en_queue(int val) 
	{
		if (is_full()) {
			printf("队列已满!!\n");
			return false;
		}
		else {
			pBase[rear] = val;
			rear = (rear + 1) % length;
			return true;
		}
	}
	bool out_queue() 
	{
		if (is_empty()) {
			printf("队列已空!!\n");
			return false;
		}
		else {
			front = (front + 1) % length;
		}
	}
	bool out_queue(int &val)
	{
		if (is_empty()) {
			printf("队列已空!!\n");
			return false;
		}
		else {
			val = pBase[front];
			front = (front + 1) % length;
		}
	}
	void traverse_queue() 
	{
		int q = front;
		while (q != rear) {
			printf("%d ", pBase[q]);
			q = (q + 1) % length;
		}
		printf("\n");
	}
};
int main() 
{
	
	queue q(6);
	q.en_queue(1);
	q.en_queue(2);
	q.en_queue(3);
	q.en_queue(4);
	q.en_queue(5);
	q.out_queue();
	q.en_queue(6);
	q.en_queue(7);
	q.en_queue(8);
	q.traverse_queue();
	return 0;
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值