⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 二叉树
💻 H
字号:
//         queue implemented as an array
//       课本上的,用的是first和last

#ifndef ARRAY_QUEUE
#define ARRAY_QUEUE
#include<iostream.h>

template<class T, int size = 50>
class ArrayQueue {
public:
    ArrayQueue() { 
		first = last = -1; //初始化,队列为空
	}
    void enqueue(T);
    bool dequeue(T & el);
    bool isFull()  { 
		return first == 0 && last == size-1 || first == last + 1; 
	}
    bool isEmpty() { 
		return first == -1; 
	}
private:
    int first, last;
    T storage[size];
};

template<class T, int size>
void ArrayQueue<T,size>::enqueue(T el) {
   if (!isFull())
        if (last == size-1 || last == -1) {
            storage[0] = el;
            last = 0;
            if (first == -1)
                first = 0;
        }
        else storage[++last] = el;
   else cout << "Full queue.\n";
}

template<class T, int size>
bool ArrayQueue<T,size>::dequeue(T & el) { 
	if(isEmpty())
		return 0;
    el = storage[first];
    if (first == last)
         last = first = -1;
	else
		first=(first+1)%size;
 /* 这个也对,替换else部分,但是比较繁琐  
    else if (first == size-1)
         first = 0;
    else first++;
*/
    return 1;
}

#endif

⌨️ 快捷键说明

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