📄 genqueue.h
字号:
//********************** genQueue.h *************************
// generic(一般) queue implemented with doubly linked list
#ifndef LINKED_QUEUE
#define LINKED_QUEUE
template <class T>
class Node {
//friend LinkedQueue<T>;
public:
T data;
Node <T> * link;
};
template <class T>
class LinkedQueue {
public:
LinkedQueue( ){front=rear=0; }
~LinkedQueue( );
bool IsEmpty() { return front==0;}
bool IsFull();
T First();
T Last();
void enqueue(const T& x);
void dequeue(T& x);
private:
Node<T> *front;
Node<T> *rear;
};
template < class T >
void LinkedQueue< T> :: enqueue( const T & x ) {
Node<T> *p=new Node<T>;
p->data=x;
p->link=0;
if ( front) // 队列不为空
rear->link=p;
else // 队列为空
front=p;
rear=p;
//return *this;
}
template < class T >
void LinkedQueue<T>::dequeue(T& x)
{
if(IsEmpty())
{ cout<<"out of bounds"; return ;}
x=front->data;
Node < T > * p = front;
front = front -> link;
delete p;
//return *this;
return ;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -