queue.h

来自「Jazmyn is a 32-bit, protected mode, mult」· C头文件 代码 · 共 95 行

H
95
字号
#ifndef ___QUEUE_H
#define ___QUEUE_H

#define	MAX_ITEMS	20

template <class T>
class __queue
{
private:
	int	__front;
	int	__rear;
	T	__items[MAX_ITEMS];
        int     __size;
public:
	__queue();
	~__queue();
	void	insert(T data);
	T	remove();
	T&	get_front();
	T&	get_rear();
	int	is_empty();
	int	size();
};

template <class T>
__queue<T>::__queue()
{
	__front = __rear = MAX_ITEMS - 1;
        __size = 0;
}

template <class T>
__queue<T>::~__queue()
{
	__front = __rear = MAX_ITEMS - 1;
}

template <class T>
int __queue<T>::is_empty()
{
	return __front == __rear;
}

template <class T>
T __queue<T>::remove()
{
	T __ret;
	if(is_empty())
	{
		return __ret;
	}
	(__front == MAX_ITEMS-1) ? __front = 0 : __front++;
        __size--;
	return __items[__front];
}
	
template <class T>
void __queue<T>::insert(T data)
{
	(__rear == MAX_ITEMS-1) ? __rear = 0 : __rear++;
	if(__rear == __front)
	{
		return;
	}
	__items[__rear] = data;
        __size++;
}

template <class T>
T& __queue<T>::get_front()
{
	T __ret;
	if(is_empty())
	{
		return __ret;
	}
	int temp = __front;
	(__front == MAX_ITEMS-1) ? temp = 0 : temp++;
      return __items[temp];
}

template <class T>
T& __queue<T>::get_rear()
{
	return __items[__rear];
}

template <class T>
int __queue<T>::size()
{
        return __size;
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?