循环队列模板


手写循环队列

实现<queue>(伪)


#pragma once
#include<stdio.h>
#include<cassert>
template<class T, int size = 50>
class Queue
{
	public:
		Queue(): front(0), rear(0), count(0)  {}
		void Insert(const T &item)		//插入数据
		{
			assert(count!=size);
			count++;
			list[rear] = item;
			rear = (rear+1)%size;
		}
		T Pop()			//返回队首并弹出
		{
			int temp = front;
			assert(count>0);
			count--;
			front = (front+1)%size;
			return list[temp];
		}
		void clear()  {  front = rear = count = 0;  }
		const T Front() const  {  return list[front];  }
		int Getsize() const  {  return count;  }
		bool Empty() const  {  return count==0;  }			//检验是否为空,↓是否满
		bool Full() const  {  return count==size;  }
	private:
		int front, rear, count;		//队头指针、队尾指针、元素个数
		T list[size];				//队列元素数组
};
int main(void)
{
	char i;
	Queue<char> p;
	for(i='a';i<='z';i++)
		p.Insert(i);
	while(p.Front()!='h')
		printf("%c", p.Pop());
	while(p.Empty()==0)
		printf("%c", p.Pop());
	puts("");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值